Tomato app is a full-stack system build in MERN.js which aims to offer a customer a range of food products to order. Then the customer can choose and order a menu build on its own.
The main features are:
- Complete guidance on the UI for the ordering process.
- 2 different roles (Role Based Access Control):
Manager
: Can process the orders received in Real time, view a history, add new restaurants and new meals. Can change the order status.User
: Can order from the restaurants. Also view a orders history.
- Use of
state-machine
to validate transitions of order status. - Follow React and Node.js best practices.
// Install dependencies for server & client
npm install && npm run client-install
// Run client & server with concurrently
npm run dev
// Server runs on http://localhost:5000 and client on http://localhost:3000
- React and React Router for frontend.
- Express and Node for the backend.
- MongoDB for the database.
- Redux for state management between React components.
Let's order food from the above restaurant.
Make sure to add your own MONGOURI
from your mLab database in config/keys.js
.
module.exports = {
mongoURI: "YOUR_MONGO_URI_HERE",
secretOrKey: "secret"
};