Reservease is a full-stack table reservation management system built upon Next.js 13, React, PostgreSQL, and Prisma. This application facilitates table reservations for restaurants and provides user roles for customers, restaurant owners, and administrators.
Reservease offers the following key features:
- Customers: Customers can browse available restaurants, view their menus, and make table reservations.
- Restaurant Owners: Restaurant owners can manage their restaurant's profile, menu, and view reservation details.
- Admin: Administrators have access to manage user accounts and restaurant listings.
- Customers can select a restaurant, choose a date and time, and make a reservation.
- Restaurant owners can view and confirm reservations.
- Implemented smart table allocation system based on table size and party size(number of people reserving)
- Restaurant owners can add and update their restaurant's information and menu items.
Secure user authentication system for all user roles.
- NeonDB: A cloud-native, serverless database platform.
- Prisma: A modern database toolkit for TypeScript and Node.js.
Reservease is built using the following technologies:
- Next.js 13: A React framework for server-rendered React applications.
- React: A JavaScript library for building user interfaces.
- NeonDB: A cloud-native, serverless database platform.
- Prisma: A modern database toolkit for TypeScript and Node.js.
- Vercel: A cloud platform for serverless deployment.
- Tailwind CSS, a popular utility-first CSS framework, for styling. Tailwind CSS allows for rapid development and customization of the application's user interface.
To run Reservease locally, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/Reservease.git
-
Navigate to the project directory:
cd Reservease
-
Install the project dependencies:
npm install
-
Set up your PostgreSQL database and update the database connection configuration in the .env file.
-
Run the command create the necessary database schema:
npx prisma db push
-
Start the development server:
npm run dev
-
Access the application in your web browser at http://localhost:3000.
Reservease is designed to serve three primary user roles: Customers, Restaurant Owners, and Admins.
-
Registration/Login:
- Register as a customer if you don't have an account, or log in if you already have one.
-
Browsing Restaurants:
- After logging in, browse through the list of available restaurants.
-
Viewing Menus:
- Select a restaurant to view its menu and details.
-
Making Reservations:
- Choose your desired restaurant, date, and time.
- Make a reservation for a table.
-
Request for ownership:
- Login as a customer and request for business oppurtunity to the admin by filling a form
-
Managing Restaurant Profile:
- After logging in, you can manage your restaurant's profile.
- Update restaurant information, such as name, address, and contact details , cuisines and image gallery
-
Managing Menu Items:
- Add, edit, or delete menu items.
- Keep your menu up-to-date with the latest offerings.
-
Viewing Reservations:
- View reservation requests from customers.
- Confirm or reject reservation requests.
-
Registration/Login:
- Register as an administrator if you don't have an account, or log in if you already have one.
-
User Account Management:
- As an admin, you can manage user accounts.
- Add, edit, or delete user accounts as needed.
-
Restaurant Listing Management:
- Admins can manage restaurant listings.
- Add, edit, or remove restaurant listings from the platform.
Reservease is deployed on Vercel and uses NeonDB's Postgresql database for production.