The purpose of this document is to outline the requirements for developing a food delivery application using the MEAN stack.
The application's scope includes functionalities such as browsing restaurants, viewing menus, placing orders, user authentication, and order management.
- Users should be able to sign up with a valid email address and password.
- Users should be able to log in using their credentials.
- Users should be able to log out securely.
- Users should be able to view a list of available restaurants.
- Users should be able to filter restaurants based on categories such as cuisine type, location, ratings, etc.
- Users should be able to view detailed information about a selected restaurant, including menus, prices, ratings, and reviews.
- Users should be able to add items from the menu to their shopping cart.
- Users should be able to specify quantity, special instructions, and delivery address during checkout.
- Users should receive confirmation and order tracking details after placing an order.
- Users should be able to view details of all the orders they have made, including order status, items ordered, total cost, and delivery details.
- MongoDB: Use MongoDB as the NoSQL database to store user accounts, restaurant details, menus, orders, and order history.
- Express.js: Utilize Express.js as the web application framework for building the backend API to handle user authentication, restaurant data management, order processing, and communication with the frontend.
- Angular: Develop the customer and administrator interfaces using Angular as the frontend framework, enabling users to interact with the application, browse restaurants, view menus, place orders, and manage accounts.
- Node.js: Use Node.js as the server-side JavaScript runtime environment to run the backend server, handle HTTP requests and responses, and integrate with MongoDB and Express.js to build a scalable and responsive food delivery application.
Create a fork of this repository and build your solution on the fork and share the forked repository address over email in the stipulated time.