- Description
- Purpose
- Technologies
- Features
- Screenshots
- Implementation
- Setup
- ToDo
- Attributions
- License
Cheers!๐ป
A fullstack WebApp for browsing and ordering from the Menu at a Pub. Users can place and view their orders and Admin can manage the Menu, process incoming Orders, view Order History, manage Users and Staff accounts.
An Open-source and online solution for local pubs.
-
Browse the menu with an interactive UI.
-
Add Items from menu to cart and place an order.
-
View placed order status and order history.
-
View incoming orders; mark them as fulfilled or cancelled.
-
View all past orders by date and chart for earnings for (x) number of days.
-
View all users and their order history.
-
Add Items to menu, delete items and mark as out-of-stock.
-
Add/Delete staff accounts.
-
Pending Orders
Completed Orders
Cancelled Orders
-
Menu
Add to menu
Deleted Menu
-
User Accounts
Staff Accounts
Delete staff account
Add staff account
-
๐ก Axios for API calls.
-
๐ ChartJS for plotting data on charts.
-
๐ Authentication & Authorization with Passport in backend.
-
๐ก๏ธ Common Security safeguards
- ๐งผ Vee-Validate
- ๐ฎ Joi Validations
- โ๏ธ Helmet
- ๐งผ SanitizeHTML
- ๐งผ ExpressMongoSanitize
- Install MongoDB.
- Install NodeJS.
- Run mongod.
- In your terminal run command
npm install
from project root folder to install all the dependencies for the backend. - In your terminal run command
npm install
from frontend folder, to install all the dependencies for the frontend. - In the project root folder create a dotenv file with
PORT
,DB_URL
,SESSION_SECRET
variables with Port number, Database URL & a string for session secret, respectively. - In vite.config.js file, change the API port number to match the one you entered.
- To start the server run
npm run server
from root. - To start the client run to
npm run client
from root. - In your browser head to the local link provided by Vite.
- You can run the JS file inside the /backend/seeds folder with node command to create an Admin account and Menu seeds.
- Write unit tests with vitest.
- Improve category & sub-category. Make it more dynamic.
- Add search functionality to menu.
- Edit menu items with help of vee-validate.
- Vuetify for building UI.
- A classic American sitcom; Cheers for the logo and example branding.
- BingAI for images.
This project is licensed under the MIT License.