School Project
Introduction · Setting Up Locally · Tech Stack . Routes
Go Manger is an innovative solution to connect gourmets and restaurants in an unprecedented culinary experience. Our school project, much more than a simple digital food court, is an integrated platform allowing users to easily order from their favorite restaurants, while offering culinary establishments a powerful tool to manage orders and communications efficiently.
Cutting-Edge Features:
Simplified Online Ordering: Customers can browse menus, place an order and pay in just a few clicks.
Real-Time Tracking: Restaurants update order status, informing customers of the ideal time for pickup.
Complete Administrator Area: A dedicated interface to monitor and administer interactions between all users of the platform.
To configure Go Manger locally, you will need to clone the repository and configure the following environment variables (in the .env file):
DB_HOST="database"
DB_PORT="5432"
DB_USER="root"
DB_PASSWORD="root"
DB_NAME="postgres"
SECRET="secret"
SMTP_EMAIL="your_email@gmail.com"
SMTP_EMAIL_PASSWORD="your_password"
To test they routes without going to the front, open the collections file with Bruno, and configure env (this does not include SSE routes and routes that upload an image):
jwt
Your token if you are connected
To run the app locally, you can run the following commands:
make i (for install front-end dependency)
make dev (for start front-end and back-end with Docker)
Go Manger is built on the following stack:
Back End:
Front End:
- TypeScript - Programming Language
- React - JavaScript Library
- Vite - Build Tool
- Tanstack Router – Routing
- Tanstack Query - Query Management
- Ky - fetching Library
- TailwindCSS – CSS Framework
- Shadcn/ui UI Components
- React Hook Form - Forms management
- Zod - Schema validation
Database:
- PostgresSQL - Relational Database
Infrastructure & Deployment:
- Docker - Containerize
Base URL: http://localhost:8080
for example replaced id with 1
Public Routes:
/
Shows the list of all restaurants
/restaurant/id
Displays a restaurant and its menu, you can also order if you are authenticated as a customer
/signin
Allows users to login or register, restaurants to login and admins to login
Customer Routes:
/client/order
Displays the details of an order placed by the customer, it is possible to click on an order to see its details
/client/order/id
Displays the details of an order
/client/profile
Allows you to see the customer's information, it is also possible to update your profile, log out or delete your account
/client/profile/update
Allows you to update the desired information
Restaurant Routes:
/restaurant/order
Shows all orders, allows you to see the details or indicate if "accepted" or "refused", if accept then you can indicate that the order is "finish" then that the order is "recovered"
/restaurant/order/id
Displays the details of an order
/restaurant/menu
Shows the list of all menu items and the possibility of adding, update and delete item
/restaurant/menu/add
Created menu item
restaurant/update/id
Allows you to update the desired information for item
restaurant/profile
Allows you to see the restaurant's information, it is also possible to update your profile, log out or delete your account
restaurant/profile/update
Allows you to update the desired information
Admin Routes:
/admin
Shows all orders, allows you to see the details or indicate if "accepted" or "refused", if accept then you can indicate that the order is "finish" then that the order is "recovered"
/admin/id
Displays the details of an order
/admin/restaurant
Shows the list of all restaurants and the possibility of adding a restaurant
/admin/restaurant/add
Adding a restaurant
/admin/restaurant/id
Displays the details of an order with menu, update and delete button
/admin/restaurant/id
Allows you to update the desired information
/admin/clients
Shows the list of all customers
/admin/user/id
Allows you to see the customer's information and his orders, it is also possible to update or delete account
/admin/user/update/id
Allows to update the customer
/admin/registerAdmin
Created admin account
/admin/profile
Allows you to see the admin's information, it is also possible to update your profile or log out your account
/admin/profile/update
Allows you to update the desired information for your account