03 / 04
Buy01
An e-commerce back end split into Spring Boot microservices, with an Angular storefront.
- Set up the Spring Cloud Gateway and the Eureka discovery service that route requests to 3 services, user, product and media.
- Built sign-up and login with JWT in user-service, then moved the token check into one gateway filter that strips spoofed identity headers.
- Built most of the Angular 21 front end, from login to the seller dashboard, and made the whole stack start with one docker compose up.
- Dates
- Mar 2026 – Jun 20263 months
- Type
- Microservices / backend
- Status
- Source on GitHub
- My role
- API gateway, auth, Angular front end
Stack
- Java 17
- Spring Boot 3.5
- Spring Cloud Gateway
- Eureka
- Spring Security
- JWT
- Apache Kafka
- MongoDB
- Angular 21
- Bootstrap
- Docker Compose
- Jenkins
What it is
An e-commerce platform split into small Spring Boot services. Clients browse the products; sellers create, edit and delete theirs and upload their images.
Every request goes through a Spring Cloud Gateway that checks the JWT, and the services find each other through Eureka. Each service keeps its own MongoDB database, and a Kafka event tells media-service to delete a product's images when the product goes.
What I did
I started the repo and set up the infrastructure: the API gateway, the Eureka discovery service, and user-service with registration, login and the JWTs. I moved the token check into the gateway's AuthenticationFilter and wrote the Docker Compose file and the Dockerfiles. I built most of the Angular 21 front end: login and register, the product list and product pages, the seller dashboard and the profile.
In October 2026 I made the whole stack start with one docker compose up, with Kafka in KRaft mode. My two teammates built product-service, media-service, the Kafka events and the Jenkins pipeline.
Results
One docker compose up starts MongoDB, Kafka, Eureka, the gateway, the three services and the front end. The services expose 16 REST endpoints, and product and image writes are seller-only (@PreAuthorize). I wrote 62 of the repo's 95 commits.
Seller dashboard
Next project 04 / 04
