https://roadmap.sh/projects/ecommerce-api
A production-ready, full-stack e-commerce solution built with Next.js, Express, and PostgreSQL. This platform features a secure shopping experience, administrative management tools, and seamless Stripe payment integration.
The project is orchestrated with Docker Compose, utilizing Nginx as a high-performance entry point:
- Nginx: Acting as a Reverse Proxy and Load Balancer (Port 80).
- Frontend: Next.js (App Router) storefront, optimized for performance and SEO.
- Backend: Express.js REST API with PostgreSQL for data persistence.
Ensure you have Docker and Docker Compose installed.
-
Clone the repository:
git clone https://github.com/blackbox24/E-Commerce-platform.git cd E-Commerce-platform -
Configure Environment Variables: Create a
.envfile in the root directory (based on.env.example) with your credentials:cp .env.example .env
-
Launch the platform:
docker-compose up --build
- Storefront & Admin: http://localhost (Port 80)
- API Access: http://localhost/api
- Browse & Search: Paginated product listings with dynamic image resolution.
- Cart Management: Add/Remove items with real-time stock awareness.
- Secure Checkout: Integrated with Stripe for PCI-compliant payments.
- User Profile: Personal order history and session management.
- HTTP-only Cookies: Secure authentication flow that protects against XSS/CSRF.
- Transactions: Atomic database operations for order fulfillment.
- Idempotency: Webhook protection to prevent duplicate orders.
- Dashboard: High-level overview of platform metrics.
- Inventory CRUD: Manage products with multi-part image uploads.
- User & Order Management: Administrative control over all platform data.
For detailed technical breakdowns, service-specific TODOs, and deployment strategies, please refer to:
- Hybrid SSR/CSR Authentication with Cookies.
- Scalable Backend Pagination.
- Idempotent Stripe Webhook Integration.
- Multi-stage Optimized Docker Builds.
- Atomic Order Fulfillment Transactions.
- Implement Redis Caching for Product Stock.
- Add Loading Skeletons and Error Boundaries.
- Integrate a dedicated Image CDN (Cloudinary).
Hope Decardi-Nelson - GitHub