FastEats
This project is an online food ordering system built using microservices architecture. It includes services for users, restaurants, orders, notifications, and a frontend, all connected through an API gateway. The system allows users to browse restaurants and place food orders, while restaurants can manage their menu and transactions. Redis handles temporary data, RabbitMQ manages background tasks like sending OTPs, and JWT secures authentication. Midtrans is integrated for payment processing, and Docker Compose is used to manage the full service stack efficiently.
Tech Stack
React.js
Node.js
Express.js
TailwindCSS
PostgreSql
RabbitMQ
Docker
Redis
Project Gallery

Key Features
- Microservices Architecture: The system is designed using microservices, with dedicated services for frontend, user, order, restaurant, notification, and an API gateway, promoting scalability and maintainability.
- API Gateway: A centralized API gateway is implemented to route requests to appropriate services, simplifying client communication by exposing a single unified endpoint.
- Redis Integration: Redis is used to manage temporary and fast-access data such as caching and session storage, improving system responsiveness.
- RabbitMQ for Background Tasks: RabbitMQ is utilized for asynchronous processing, including sending OTP verification emails during login, ensuring smooth and non-blocking user interactions.
- JWT-Based Authentication: Authentication across services is handled using JWT, enabling secure, stateless, and scalable user session management.
- Docker Compose Orchestration: Docker Compose is used to containerize and orchestrate Redis, PostgreSQL, RabbitMQ, and other services, ensuring consistent environments and simplified deployment.
- Midtrans Payment Integration: The system integrates Midtrans to securely handle online payments, providing a reliable and user-friendly transaction experience.