Elegant full-stack jewelry e-commerce platform with React, Express, and PostgreSQL.
- 🛍️ Product Catalog - Browse jewelry by category with search
- 🛒 Shopping Cart - Persistent cart with size variants (login required)
- 💳 Secure Checkout - Complete order flow with simulated payments
- 👤 User Dashboard - Order history with downloadable receipts
- 🔐 Authentication - Secure JWT-based auth with session management
- 📊 Admin Panel - Product & order management, sales analytics
- 🌍 Multi-Language Support - Full i18n with 4 languages (EN, ES, FR, ID)
- 📱 Fully Responsive - Optimized for mobile, tablet, and desktop
- ⚡ Production Ready - Concurrency handling, rate limiting, transaction safety
Prerequisites: Node.js 18+, npm 10+
# Install dependencies
npm install
# Start development server
npm run dev
# Opens at http://localhost:5173
# Build for production
npm run build
npm startTest Account:
- Email:
admin@lumiere.test - Password:
admin123
By default, uses in-memory storage. For persistence with PostgreSQL:
# Set database URL
export DATABASE_URL="postgres://user:pass@host:5432/dbname"
# Apply schema
npm run db:push
# Seed sample data
npm run db:seed# Required: Set secret for JWT tokens
export JWT_SECRET="your-secure-random-secret-key"
# Optional: PostgreSQL for persistence
export DATABASE_URL="postgres://..."
# Optional: Redis for distributed rate limiting
export REDIS_URL="redis://localhost:6379"client/ # React frontend (Vite + Tailwind)
src/
pages/ # Route components
components/ # UI components (Radix UI)
lib/ # Contexts, utilities
server/ # Express backend
routes.ts # API endpoints
storage.ts # Data layer (memory/Postgres)
db.ts # Database configuration
shared/
schema.ts # Shared types & validation
- API Reference - Complete REST API documentation
- Architecture - System design, ERD, data flows
- Development Guide - Setup, conventions, troubleshooting
- Internationalization (i18n) - Multi-language support guide
- Deployment - Production deployment guide
Frontend: React 18, Wouter, Tailwind CSS, Radix UI, React Query
Backend: Express, Drizzle ORM, Zod validation
Database: PostgreSQL (optional), in-memory fallback
Auth: JWT tokens, HTTP-only cookies
- Browse products without login
- Add to cart & checkout (requires authentication)
- View order history with receipt downloads
- Switch between 4 languages (English, Spanish, French, Indonesian)
- Secure account management
- Product management (CRUD operations)
- Order processing (pending → processing → completed)
- Sales analytics with interactive charts
- Customer order oversight
- JWT-based authentication with HTTP-only cookies
- Rate limiting (5 registrations, 10 logins per 15 min)
- Transaction-safe order processing
- Idempotent API requests
- Secure account deletion with multi-step confirmation
Handles 500-1000 concurrent users with:
- Database connection pooling
- Atomic inventory operations
- Race condition prevention
- Optimized queries with indexes
Group 1:
- Reynaldi Siregar
- Arif Maulana
- R Muhammad Haris
- Aji malela
- Ardika Zaki
- Teuku Rifky
MIT