Skip to content
All projects
University project · 2024

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
Project poster: a shopping bag on a hexagon pattern

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

Platform diagram: the clients, the OPNsense firewall that spreads the load, the Kubernetes cluster with its gateway, the REST services, their Postgres and Redis databases, and NATS linking checkout to shipping and emails, with the admin workstation, all on OpenStack
The platform: the OPNsense firewall, the Kubernetes cluster on OpenStack, the microservices and NATS

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

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.