Containerised e-commerce application
A microservices e-commerce platform for a fictional client company: I developed the customer, catalogue, cart, checkout and shipping services in Python, then connected the whole thing together with Docker.
- Year
- 2024
- Context
- Group project, final year of my BUT in Networks & Telecoms
- My role
- Python services, unit tests and Docker
- Tech stack
- Python
- Flask
- Kubernetes
- Docker
- OpenStack
- NATS
01 · Context
The challenge
Third-year project of my BUT degree in Networks and Telecommunications, Cloud and Systems Development track: building an e-commerce platform for a fictional client company, RapidTrade Co., able to grow and to absorb activity peaks such as Christmas or Black Friday. The application has eleven microservices, which talk over REST or through NATS messages (an official NATS Docker image that the team configured rather than rebuilt). The web portal, authentication, payment and email sending were provided as containers. The rest had to be developed: I designed in Python all the required services, that is customers, product catalogue, cart, checkout and shipping, connected them together locally with Docker, and wrote their unit tests. The checkout service orchestrates it all: it fetches the cart and the customer, queries the catalogue to compute the total, requests the payment, then publishes the order on NATS so that the emails and the shipping follow, and empties the cart. Deployment on a three-node Kubernetes cluster, installed on OpenStack instances behind an OPNsense firewall, was handled by other members of the team, which worked in an agile way, in sprints, with a GitLab task board.
02 · Architecture
How it's built
Key points
- Five Python microservices developed by me: customers, catalogue, cart, checkout, shipping
- Services built to a precise specification: REST APIs secured by key, metrics, environment variables
- Asynchronous communication through NATS (official image, configured) between checkout, emails and shipping
- Unit tests for each service, containerisation and local assembly with Docker
- Deployment by the team on Kubernetes, with OpenStack instances and an OPNsense firewall
- Teamwork, in an agile way
03 · In pictures
Gallery

The shop's web portal, provided with the brief 
The application's services: in green, the ones that were provided 
The Kubernetes resources of each service, from the Service to the pods 
The application's pods, spread across the cluster nodes 
The five OpenStack instances of the infrastructure 
How the checkout service works, from the cart to the payment result 
Port-forwarding rules of the OPNsense firewall to the application 
The team's task tracking, by progress state
Click an image to open it full screen and browse through the screenshots.
04 · Takeaways
What I took away from it
The most complete project of my BUT degree: it put into practice everything I had learned in three years.