Skip to content

xinnks/foody

Repository files navigation

Foody

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:

Setup

Make sure to install the dependencies:

# yarn
yarn install

# npm
npm install

# pnpm
pnpm install

Supabase setup

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.

Development Server

Start the development server on http://localhost:3000

npm run dev

Production

Build the application for production:

npm run build

Locally preview production build:

npm run preview

Check out the deployment documentation for more information.

About

A food delivery app built with Nuxt and Supabase with notifications handled by Novu

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages