A simple REST API for managing Pro plan subscriptions.
- Minimalist domain design
- Authentication-free — intended for backend services
- Ready to run — out of the box with Docker
- Unit and functional tests — covering domain logic and API behavior
- Single subscription model
- Identified by email — no external identifiers required
- Simple lifecycle management — no states, only validity period
- End-of-month renewals — calendar-based, including leap years
- Email notification on subscription renewal
- Health check — service availability
- Upsert subscription — create or update a subscription
- Get subscription — retrieve a subscription
- Renew subscription — extend the current validity
- Python + FastAPI
- Clean Architecture
- Use-case driven design
- Rich domain models — organized into domain modules
- Value objects
- UUIDs — primary identifiers
- Docker
- Docker Compose
- Run the project:
docker compose up -d- Run database migrations:
docker compose exec api make mAPI Base URL: http://localhost/api
- API Docs: http://localhost/docs
- Mailcatcher: http://localhost:81
Useful commands are available in the Makefile.
A reference project demonstrating backend system design and implementation.
Dušan Mlynarčík — Software Engineer & Product Builder