This is a minimal food delivery app build with Nuxt.js and Supabase with its notifications managed with Novu.
To learn more about the technologies used you can visit the following links:
Make sure to install the dependencies:
# yarn
yarn install
# npm
npm install
# pnpm
pnpm install
For the database add the following tables.
-- Create a table for public profiles
create table profiles (
id uuid references auth.users on delete cascade not null primary key,
updated_at timestamp with time zone,
full_name text not null,
email text unique not null,
phone text not null,
address text,
admin boolean default false,
avatar_url text,
constraint phone check (char_length(phone) >= 10)
);
-- Create a table for food orders
create table orders (
id uuid not null default uuid_generate_v4() primary key,
updated_at timestamp with time zone,
created_at timestamp with time zone,
profile_id uuid references public.profiles on delete cascade not null,
price float not null,
discount int default 0,
final_price float not null,
paid bool default false,
delivered bool default false,
in_transit bool default false,
delivery_time timestamp with time zone,
delivery_fee float default 0 not null,
comment text
);
-- Create a table for dishes
create table dishes (
id uuid not null generated by default as identity primary key,
created_at timestamp with time zone,
name text not null,
price int not null,
image text not null,
ingredients text,
description text,
calories text,
);
-- Create a table for food order dishes
create table order_dishes (
id uuid not null default uuid_generate_v4() primary key,
updated_at timestamp with time zone,
order_id uuid references public.orders on delete cascade not null,
dish_id int references public.dishes on delete cascade not null,
count int default 1
);
-- Create a table for customer feedback
create table feedback (
id uuid not null default uuid_generate_v4() primary key,
updated_at timestamp with time zone,
order_id uuid references public.orders on delete cascade not null,
information text
);
Rename the loval.env
file to .env
and populate the empty variables with their respective values.
Start the development server on http://localhost:3000
npm run dev
Build the application for production:
npm run build
Locally preview production build:
npm run preview
Check out the deployment documentation for more information.