This is a microservice-based e-commerce platform built for educational/exam purposes.
The system is designed using modern backend architecture principles:
- Microservices
- Event-driven architecture (RabbitMQ)
- Caching layer (Redis)
- Role-based access control (RBAC)
- REST API communication
- Frontend SPA (React)
- React (Vite)
- TypeScript
- TanStack Query
- Axios
- React Router
- Node.js (Express)
- Supabase (PostgreSQL database)
- RabbitMQ (message broker)
- Redis (caching layer)
- JWT Authentication
- Docker / Docker Compose
- User registration
- Login (JWT authentication)
- Role management (Admin / Customer)
- User profile management
- User data retrieval
- POST | DELETE | GET products
- Product listing
- Redis caching for product list and product details
- Checkout / order creation
- Publishes events to RabbitMQ
- Consumes RabbitMQ events
- Handles:
- order.created
- order.paid
- user.registered
- Simulated email notifications (console logs)
Redis is used in Product Service for:
GET /products
Features:
- TTL caching (60–300 seconds)
- Cache invalidation on:
- product create
- product delete
- Admin
- Customer
Admin:
- Manage products ( On Site )
- View all orders ( Supabase )
Customer:
- View products
- Add to cart
- Create orders
- Login / Register
- Product catalog
- Cart
- Checkout
- Admin dashboard
- Role-based routing (guards)
- Global state management (TanStack Query)
- API integration via Axios
docker-compose up --build