Fresh Food is a full-stack project developed using the MERN (MongoDB, Express.js, React.js, Node.js) stack, along with React.js for the front end and Tailwind CSS for styling. It leverages modern technologies to create a seamless platform for customers, food partners, and the admin team.
- Acts as a technology platform connecting customers and food partners.
- Offers multiple roles: Customers, Fresh Food Admin, and Food Partners Admin.
- Implements authentication using JWT (JSON Web Tokens) for secure access to admin functionalities.
- Preserving cookies for future data collection and secure requests to confirm users' identities at the backend.
- Does not rely on third-party APIs; all data is stored within the application.
- Fresh Food Admin can manage coupon codes for promotional offers and discounts.
- Utilizes REST APIs for data retrieval and manipulation from the database via backend routes. No additional third-party API is used.
- Enables food partners to easily add, edit, or remove dishes from their menus with CRUD operations.
- Provides comprehensive analytics for Fresh Food Admin, including sales tracking, customer count, and more.
- Integration of a payment gateway using the Razorpay API to collect payments from customers.
- The admin panel includes promotional offers and vouchers to lower consumers' expenses.
- Customers can sort dishes by new, best-selling, most popular, today's special, duration, and price.
- MongoDB: Database for storing data
- Express.js: Backend framework for handling server-side logic
- Vite + React.js: Frontend library for building user interfaces
- Node.js: JavaScript runtime environment for server-side development
- Tailwind CSS: Utility-first CSS framework for styling
- Clone the repository.
- Install the necessary dependencies using "npm install"
- Set up environment variables, such as MongoDB connection URL and API keys. To run the project, you'll need to set up the following environment variables:
PORT
: Port number for the server (e.g., 8000).CUSTOMER_SECRET
: Secret key for customer authentication.PARTNER_SECRET
: Secret key for food partners authentication.ADMIN_SECRET
: Secret key for admin authentication.RAZORPAY_KEY
: API key for integrating with the Razorpay payment gateway.RAZORPAY_KEY_SECRET
: Secret key for the Razorpay API.MONGODB_URI
: MongoDB connection URL.
- Run the development server using the provided scripts.
For Client side :
- 1> cd client
- 2> cd "Fresh Food"
- 3> npm run dev
For Server side :
- 1> cd server
- 2> npm run dev
- Access the application in your browser.
Front end of Fresh Food will run on - http://localhost:5173/
Back end of Fresh Food will run on - http://localhost:8000/
-
Register or log in: As a customer, you can register a new account or log in using your credentials.
-
Browse available dishes: Once logged in, you can browse the available dishes. Use the search or filtering options to find specific types of dishes or explore the entire menu.
-
Place an order: Select the desired dishes and add them to your cart. Proceed to the checkout process and provide any necessary details such as coupon code and payment information.
-
Track your order: After placing an order, you can track its status through your profile whether your order is completed or not.
-
Register as a food partner: Food partners can register their restaurants or food businesses through the registration process provided in the application.
-
Manage menu items: Once registered and logged in, food partners can manage their menu items. They can add new dishes, edit existing ones, and update their tags when necessary.
-
Track orders: Food partners can track and manage incoming orders through a dedicated dashboard. They can view order details, update the status (completed).
-
Manage account settings: Food partners can update their account information, including contact details, menu.
-
Manage customer data & balance: Food Partners can access their customers and check their revenue.
-
Access the admin panel: The admin team can access a separate admin panel with enhanced functionalities and privileges.
-
Manage food partners: The admin team can manage the list of food partners, approving new registrations, or suspending/deleting existing accounts when necessary.
-
Analyze sales and customer data: The admin panel provides comprehensive analytics and reports. The team can track sales, customer count, popular dishes, and other key performance indicators to gain insights and make data-driven decisions.
-
Manage promotional offers: The admin team can create and manage promotional offers, including coupon codes, discounts, and special deals, to attract customers and encourage orders.
-
Monitor and resolve issues: The admin team can monitor the platform for any issues, such as customer complaints or technical glitches, and take appropriate actions to resolve them promptly.
In summary, Fresh Food is a feature-rich project that leverages modern technologies to create a seamless platform for customers, food partners, and the admin team. It enables efficient management of food-related operations while providing valuable insights for business growth and optimization.
Fresh Food is a feature-rich project that leverages modern technologies to create a seamless platform for customers, food partners, and the admin team. It enables efficient management of food-related operations while providing valuable insights for business growth and optimization.