About this project
UrbanMart is a full-stack e-commerce application designed to simulate real-world online shopping platforms. It includes advanced filtering, sorting, server-side pagination, stock validation before checkout, wishlist functionality, and structured order creation. Razorpay is integrated for secure online payments with backend signature verification and order status updates. The backend is built using Node.js with Prisma ORM and PostgreSQL, ensuring a relational and scalable database design. This project helped me understand payment gateway integration, business logic implementation, and handling complex user flows like cart management and transaction states.
The Problem
Many beginner e-commerce projects focus only on UI and basic CRUD operations, lacking real-world features like stock validation, secure payment processing, structured order states, and scalable database design.
The Solution
Built a complete e-commerce system with structured relational schema, stock-aware cart logic, secure Razorpay payment integration with backend verification, order lifecycle management, server-side filtering & pagination, and clean state handling to simulate real-world business logic.
Key Features
- Advanced product filtering and sorting
- Server-side pagination for performance optimization
- Stock-aware quantity selection and validation
- Cart and wishlist management
- Complete checkout and order creation flow
- Razorpay payment gateway integration
- Backend signature verification for secure payment validation
- Structured order lifecycle (CREATED → PENDING_PAYMENT → PAID → FAILED → EXPIRED)
- Secure authentication with JWT
Technologies Used
Why I Built This
I built UrbanMart to go beyond a basic shopping website and understand how real e-commerce systems work internally. I wanted to design proper database relationships, implement secure payment verification, handle order states correctly, and build production-level backend logic instead of just focusing on UI.
Screenshots
My Role
Full Stack Developer
Built UrbanMart as a full-stack project focusing heavily on backend architecture, database schema design, and business logic implementation. Designed relational models using Prisma, implemented authentication and role-based access, and developed both customer and admin interfaces.
Team Setup
Solo
Project Duration
2 weeks (~120+ focused development hours)
Key Responsibilities
Designed relational database schema using Prisma & PostgreSQL
Developed RESTful APIs for products, cart, and orders
Implemented order lifecycle state management
Built responsive UI using React and Tailwind CSS
Implemented authentication and protected routes
Optimized queries using server-side pagination and filtering
Tested edge cases like stock mismatch and failed orders
Challenges & Learnings
Challenges Faced
- 1
Designing a normalized relational database schema using Prisma
- 2
Handling order state transitions correctly
- 3
Integrating Razorpay and implementing secure signature verification
- 4
Preventing overselling with stock validation logic
- 5
Managing complex cart state across multiple pages
- 6
Implementing pagination and filtering efficiently
Key Learnings
- ✓
Deepened understanding of relational database modeling
- ✓
Learned how real-world e-commerce payment systems operate
- ✓
Gained hands-on experience integrating Razorpay payment gateway
- ✓
Understood the importance of backend payment verification and security
- ✓
Improved backend API structuring and modularization
- ✓
Strengthened full-stack debugging and optimization skills
Interested in my work?
Feel free to reach out or explore more of my projects