- Application Name: EMart
- Architecture: Microservices
- Front End: API Gateway with Nginx, Angular (client app)
- Endpoints: root, /api, /webapi
DESCRIPTION
The project entails containerizing a microservice application, facilitating efficient deployment and scalability. Utilizing Docker and Docker Compose, the microservice stack includes NGINX as the API gateway, Angular for the client-side interface, Node.js and Java for backend APIs, along with MongoDB and MySQL databases. Hosted within a mono repository on GitHub, the microservices are orchestrated to work seamlessly together.
The process involves writing Dockerfiles for each microservice to define their build processes and hosting configurations. Additionally, a Docker Compose file is crafted to orchestrate the containers, managing dependencies and environment variables.
- Client App (Angular)
- Connected to /api served by NodeJS (Mart API)
- Requires MongoDB Database (deployed as a container)
- Web API:
- Connects to /webapi served by Java (Books API)
- Requires MySQL Database
- All components (Nginx, Angular, NodeJS, Java, MongoDB, MySQL) run as containers.
- Scalable from a developer's perspective.
- Additional microservices (e.g., videos, payment gateway, cart) can be added.
- Utilizes Docker and Docker Compose.
- Requires the EMart app repository.
- Clone the EMart app repository.
- Open Docker Compose YAML file.
- Run Docker Compose commands
- Build images and run containers.
- Access the application through the browser using the VM's IP address and port 80.
- Interact with the front end and register a user.
- Demonstrates interaction with NodeJS (MongoDB) and Java (MySQL)
That's Micro-service Application working on Docker platform