Build a modern e-commerce application with user authentication, product catalog, shopping cart, and checkout functionality.
- Initialize Node.js project with TypeScript and Express
- Set up PostgreSQL database with connection pooling
- Configure environment variables and secrets management
- Create database migration system using Knex or TypeORM
- Set up logging with Winston or Pino
- Configure CORS and security middleware (helmet, rate limiting)
- Create User model with email, password hash, and timestamps
- Implement bcrypt password hashing utility
- Build JWT token generation and validation service
- Create POST /api/auth/register endpoint with validation
- Create POST /api/auth/login endpoint with JWT response
- Implement authentication middleware for protected routes
- Add password reset functionality with email tokens
- Create user profile endpoints (GET/PUT /api/users/profile)
- Create Product model with name, description, price, image, inventory
- Build GET /api/products endpoint with pagination and filtering
- Build GET /api/products/:id endpoint for product details
- Create POST /api/products endpoint (admin only)
- Create PUT /api/products/:id endpoint (admin only)
- Create DELETE /api/products/:id endpoint (admin only)
- Implement product image upload to S3 or Cloudinary
- Add product search functionality with full-text search
- Create product category system with hierarchy
- Create Cart model linking users to products with quantities
- Build GET /api/cart endpoint to retrieve user's cart
- Create POST /api/cart/items endpoint to add products to cart
- Create PUT /api/cart/items/:id endpoint to update quantity
- Create DELETE /api/cart/items/:id endpoint to remove from cart
- Implement cart total calculation with tax and shipping
- Add cart persistence across sessions
- Create cart expiration logic for abandoned carts
- Create Order model with user, items, status, and payment info
- Build POST /api/orders endpoint to create order from cart
- Integrate Stripe payment processing
- Create GET /api/orders endpoint for user's order history
- Create GET /api/orders/:id endpoint for order details
- Implement order status tracking (pending, paid, shipped, delivered)
- Add order confirmation email with SendGrid or AWS SES
- Create admin order management endpoints
- Set up React project with Vite or Create React App
- Configure React Router for navigation
- Create responsive navigation header component
- Build login and registration pages with form validation
- Create product listing page with grid layout
- Build product detail page with image gallery
- Implement shopping cart UI with item management
- Create checkout flow with payment form
- Add Redux or Zustand for global state management
- Implement optimistic UI updates for cart operations
- Create loading states and skeleton screens
- Add error handling and toast notifications
- Build user dashboard with order history
- Create admin panel for product management
- Implement product search with debouncing
- Add product filtering and sorting UI
- Write unit tests for authentication service
- Write unit tests for cart calculation logic
- Create integration tests for auth endpoints
- Create integration tests for product endpoints
- Create integration tests for order endpoints
- Write E2E tests for user registration flow
- Write E2E tests for checkout flow
- Set up test database seeding and teardown
- Achieve 80% code coverage target
- Add database indexes on frequently queried fields
- Implement Redis caching for product catalog
- Add API response caching with cache invalidation
- Optimize product images (compression, WebP format)
- Implement lazy loading for product images
- Add frontend code splitting and lazy routes
- Optimize bundle size with tree shaking
- Set up CDN for static assets
- Set up CI/CD pipeline with GitHub Actions
- Configure automated testing in CI pipeline
- Create Docker containers for backend and frontend
- Set up Docker Compose for local development
- Deploy backend to AWS ECS or Heroku
- Deploy frontend to Vercel or Netlify
- Configure production database with backups
- Set up monitoring with Datadog or New Relic
- Configure error tracking with Sentry
- Add health check endpoints for monitoring
- Write API documentation with Swagger/OpenAPI
- Create README with setup instructions
- Document environment variables and configuration
- Write deployment guide for production
- Create user guide with screenshots
- Document database schema and relationships
- Add inline code comments for complex logic
- Create architecture diagram
- Implement CSRF protection
- Add SQL injection prevention validation
- Set up XSS protection headers
- Implement rate limiting per user/IP
- Add input sanitization for all endpoints
- Set up HTTPS with SSL certificates
- Implement secure session management
- Add PCI compliance for payment processing
- Create privacy policy and terms of service
- Implement GDPR data export/deletion endpoints
- All endpoints return proper HTTP status codes
- All tests pass with >80% coverage
- Page load time <2 seconds
- API response time <200ms for most endpoints
- Zero critical security vulnerabilities
- Mobile-responsive on all screen sizes
- Successful payment processing end-to-end
- Deployment pipeline executes in <10 minutes
Backend:
- Node.js + TypeScript + Express
- PostgreSQL with TypeORM or Knex
- Redis for caching
- JWT authentication
- Stripe for payments
Frontend:
- React + TypeScript
- Vite for bundling
- Redux/Zustand for state
- TailwindCSS for styling
- React Router for navigation
DevOps:
- Docker + Docker Compose
- GitHub Actions for CI/CD
- AWS ECS or Heroku for backend
- Vercel or Netlify for frontend
- Sentry for error tracking
- Use semantic versioning for releases
- Follow conventional commits for git messages
- Code must pass ESLint and Prettier checks
- All PRs require review before merge
- Database migrations must be reversible
- Maintain changelog for all releases