Inspiration Our inspiration was to create a comprehensive, modern, and user-friendly e-commerce platform that serves both customers and administrators seamlessly. We noticed that many existing platforms were either too complex for administrators to manage or too simplistic for a rich customer experience. We aimed to bridge that gap by building a full-featured solution using the MERN stack (MongoDB, Express.js, React, Node.js), providing a robust foundation for a scalable online store. The goal was to develop a single, integrated system that handles everything from product and inventory management to secure payments and automated customer interactions like abandoned cart reminders.
What it does This project is a complete e-commerce automation system with two primary interfaces: a customer-facing storefront and a powerful admin panel.
For Customers:
Account Management: Users can register and log in using email/password, a phone number with SMS verification, or their Google account.
Shopping Experience: Customers can browse products, filter them by category and brand, sort by price or popularity, and use a search bar to find specific items.
Cart and Checkout: A fully functional shopping cart is available for both registered and guest users. The system uses Iyzico for secure payment processing.
Order Tracking & Wishlist: Users can track their order status and save items to a personal wishlist for future purchase.
Product Reviews: After purchasing an item, customers can leave a rating and a written review.
For Administrators:
Dashboard & Analytics: The admin panel features a comprehensive dashboard with key statistics, including sales overviews, order status distribution, and top-selling products. It also provides analytics on profit margins and customer behavior.
Content Management: Admins can manage all storefront content, including homepage sections, promotional banners, and informational pages like "About Us" and "Privacy Policy."
E-commerce Management: The system allows for complete management of products, inventory, orders, categories, and brands.
How we built it We built the application using the MERN stack, ensuring a consistent JavaScript-based environment for both the frontend and backend.
Backend: Developed with Node.js and the Express.js framework, our server handles all business logic, API routing, and database interactions. We used
MongoDB with Mongoose for flexible and scalable data modeling, creating schemas for users, products, orders, and more. For user authentication, we implemented multiple strategies using
Passport.js for Google OAuth and Firebase Admin SDK for phone number verification.
Frontend: The client-side was built with React, using Redux Toolkit for efficient state management across the application. This allows us to handle complex states for authentication, shopping cart, and product data. We used React Router for page navigation and created a responsive user interface with modern UI components.
Key Integrations:
Iyzico: For secure and reliable payment processing.
Firebase: For Google and phone-based authentication services.
Nodemailer: To power our automated email system, such as sending abandoned cart reminders to customers.
Challenges we ran into Throughout the development process, we faced several technical challenges:
Complex State Management: Managing the state for a feature-rich e-commerce application was a significant challenge. Handling the shopping cart for both guest and authenticated users, synchronizing it with the backend upon login, and ensuring a consistent state for filters, authentication, and product details required a robust Redux setup.
Secure and Multi-faceted Authentication: Implementing three different authentication methods (email/password, Google, and phone number) while ensuring security and a smooth user experience was complex. Integrating Passport.js and Firebase Admin SDK on the backend and managing the token-based session on the frontend required careful coordination.
Real-time Data Synchronization: Ensuring that data displayed to the user, such as stock levels and order statuses, was always up-to-date was a priority. This required careful handling of API calls and state updates, especially after actions like placing an order or an admin updating a product.
Payment Gateway Integration: Integrating the Iyzico payment gateway involved handling callbacks, managing different payment statuses (success, failure, pending), and ensuring that the order and stock information were correctly updated only after a successful transaction.
Accomplishments that we're proud of We are particularly proud of several key accomplishments:
A True Full-Stack Application: We successfully built a complete, end-to-end e-commerce platform from scratch, covering both a feature-rich admin panel and a polished, customer-facing storefront.
Advanced Admin Dashboard: The analytics and reporting features in our admin panel are a major point of pride. Providing administrators with detailed insights into sales, profit, and customer trends empowers them to make data-driven decisions.
Automated Customer Engagement: The implementation of the abandoned cart reminder email system is an accomplishment that adds direct business value. This feature helps increase conversion rates by automatically re-engaging customers who have left items in their cart.
Seamless Guest Checkout: We successfully designed a smooth and intuitive checkout process for guest users, which is crucial for reducing friction and maximizing sales from first-time visitors.
What we learned This project was a tremendous learning experience. Here are some of our key takeaways:
The Importance of Modular Architecture: Structuring both the frontend and backend into modular components and routes was essential for managing the project's complexity. On the backend, separating routes by concern (admin, shop, auth) kept the codebase clean. On the frontend, Redux slices for different features (auth, cart, products) made state management predictable.
API Design and Security: We learned the importance of designing a secure and efficient RESTful API. Implementing authentication middleware to protect routes and ensuring proper data validation at every endpoint was crucial.
Asynchronous Operations: From handling API calls with Redux Thunk to managing payment gateway callbacks, we deepened our understanding of asynchronous JavaScript and the importance of handling promises, errors, and loading states gracefully.
Third-Party Integrations: Integrating external services like Firebase for authentication and Iyzico for payments taught us how to work with external APIs, handle their specific requirements, and manage sensitive credentials securely using environment variables.
What's next for e-commerce The future of e-commerce is geared towards greater personalization, automation, and seamless user experiences. Based on our project, we see several key trends shaping the industry:
Hyper-Personalization: Leveraging data to offer personalized product recommendations, targeted promotions, and customized user interfaces will become standard. Our analytics backend provides the foundation for building such features.
AI-Powered Everything: From AI-driven chatbots for customer service to predictive analytics for inventory management and sales forecasting, artificial intelligence will automate and optimize e-commerce operations.
Headless Commerce: Decoupling the frontend (the "head") from the backend e-commerce functionalities is a growing trend. This allows for greater flexibility in creating unique customer experiences across various platforms (web, mobile apps, IoT devices) using the same backend logic. Our project's API-first structure is a step in this direction.
Social and Conversational Commerce: Shopping directly through social media platforms and messaging apps will continue to grow. E-commerce platforms will need to integrate seamlessly with these channels to meet customers where they are.
Built With
- bolt
- express.js
- gemini
- javascript
- mongodb
- react
- tailwind
Log in or sign up for Devpost to join the conversation.