The food ordering app is designed to offer a seamless experience for both vendor and customers. With a focus on efficient design, robust product management, and secure transactions, the app enables vendor to showcase their foods to customers. Key features include a secure user authentication system, comprehensive product management tools, a convenient shopping cart, and a streamlined order processing system. The app integrates a secure payment gateway to facilitate online transactions, supports customer rating for informed decision-making, and incorporates search and filtering options for a personalized shopping experience. Additionally, the app prioritizes security, scalability, and legal compliance, while analytics tools provide valuable insights. With thorough testing, documentation, and ongoing customer support integration, the food ordering app aims to enhance the overall online food shopping experience.
-
Admin: Admin can register vendor, view all transaction, and register and verify delivery.
-
Customer: User can update, get, and create Order.
-
Vendor: Admin can update, get, and create Product.
-
Delivery: User can update, get, and create Reviews.
- JavaScript
- Node
- Express
- dotenv
- mongoose
- nodemon
- cors
- bcryptjs
- express-async-error
- helmet
- jsonwebtoken
- http-status-code
- cookie-parser
- express-rate-limit
- validator
- clone the repository
git clone git@github.com:olawuwo-abideen/foodorderingapp.git
- navigate to the folder
cd foodorderapp.git
Open a terminal window session, or the equivalent on your machine, and enter the following command to install all the Node modules needed to run the app:
npm install
After doing an npm install
enter the following npm start
command:
npm start
Set up the environment variables:
Create the .env file and setup the MongoDB URL.
The server will start running on the specified port (default: 3000) and establish a connection to the MongoDB database.
This will start the app and set it up to listen for incoming connections on port 3000. Open up your browser of choice and go to the url
http://localhost:3000
to start using the app.
The following API endpoints are available:
BaseUrl https://localhost:3000/
GET /api/v1/admin/vendors
- Get all VendorsGET /api/v1/admin/vendors/:id
- Get a VendorsGET /api/v1/admin/vendors/transactions
- Get all TransactionsGET /api/v1/admin/vendors/transaction/:id
- Get a TransactionGET /api/v1/admin/verify
- Verify Delivery UserGET /api/v1/admin/delivery/users
- Get a Delivery User
POST /api/v1/customer/register
- Customer SignupPOST /api/v1/customer/login
- Customer loginGET /api/v1/customer/logout
- Customer logoutPATCH /api/v1/customer/updatepassword
- Update Customer PasswordGET /api/v1/customer/profile
- Get Customer ProfilePATCH /api/v1/customer/profile
- Update Customer ProfilePOST /api/v1/customer/order/delivery
- Assign order for deliveryGET /api/v1/customer/verify/transaction
- Validate transactionPOST /api/v1/customer/create-order
- Create orderGET /api/v1/customer/orders
- Get all orderGET /api/v1/customer/order/:id
- Get single order
POST /api/v1/delivery/signup
- Register a delivery userPOST /api/v1/delivery/login
- Login delivery userGET /api/v1/delivery/logout
- Logout delivery userGET /api/v1/delivery/profile
- Get delivery profilePATCH /api/v1/delivery/profile
- Update delivery profile
GET /api/v1/shopping/availablefood
- Get all available foodGET /api/v1/shopping/top-restaurant
- Get top restaurantGET /api/v1/shopping/foodoffers
- Get available offerGET /api/v1/shopping/restaurant/:id
- Get a restaurant
POST /api/v1/vendor/register
- Register a vendorPOST /api/v1/vendor/login
- Login a vendorGET /api/v1/vendor/logout
- Logout a vendorPATCH /api/v1/vendor/password
- Update vendor passwordPATCH /api/v1/vendor/profile
- Update vendor profilePOST /api/v1/vendor/food
- Create foodGET /api/v1/vendor/foods
- Get all foodsGET /api/v1/vendor/orders
- Get all orderGET /api/v1/vendor/order/:id
- Get an orderGET /api/v1/vendor/offers
- Get all offerPOST /api/v1/vendor/offer
- Create an OfferPUT /api/v1/vendor/offer/:id
- Get an offerPATCH /api/v1/vendor/offer
- Update an offer
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.
👤 Olawuwo Abideen
- GitHub: @Olawuwo Abideen
- Twitter: @Olawuwo Abideen
- LinkedIn: @Olawuwo Abideen