Inspiration
FreshMart was inspired by the idea of making grocery shopping easier, faster, and more organized for both customers and store owners. I wanted to build a practical full-stack project that feels close to a real online grocery store, where users can browse fresh products, add items to their cart, make payments, and track their orders.
What It Does
FreshMart is an online grocery store where customers can browse products by category, search and filter items, view product details, add products to a wishlist or cart, and complete checkout using Razorpay. Users can also manage their profile and view their order history.
The project also includes an admin dashboard where an admin can manage products, create categories, view orders, update order statuses, and track store metrics like revenue, users, products, and pending orders.
How I Built It
I built the frontend using React, Vite, React Router, Axios, Tailwind CSS, and Context API for managing authentication, cart, and wishlist state. The backend was built with Node.js, Express, MongoDB, and Mongoose. I used JWT for authentication, bcrypt for password security, and Razorpay for payment integration.
The app is divided into a client and server structure. The frontend communicates with the backend through REST APIs for users, products, categories, orders, and payments.
Challenges I Faced
One of the biggest challenges was connecting the complete shopping flow from cart to payment to order creation. I also had to handle user authentication, protected routes, admin-only access, stock updates, and order status tracking. Another challenge was keeping product images, categories, units, and cart data consistent between static fallback data and database products.
What I Learned
Through this project, I learned how to structure a full-stack MERN application, build REST APIs, connect a React frontend with an Express backend, manage global state using Context API, protect routes with JWT, and integrate online payments. I also improved my understanding of real-world e-commerce features like order tracking, admin dashboards, inventory management, and payment verification.
Future Improvements
In the future, I would like to add product editing, better analytics for the admin dashboard, email notifications, delivery tracking, product reviews, and improved mobile responsiveness.
Built With
- express.js
- mongodb
- node.js
- razorpay
- react


Log in or sign up for Devpost to join the conversation.