# Capstone Architecture

The project is following monolith architecture style with the following services:
1. Nginx with statically build frontend
1. Backend divided into following modules:
1. Auth -- authentication and permission submodule (relies on django abstractions)
2. Users -- user managment module
3. Booking -- booking managment module
4. Washing machines with background tasks module -- module responsible for async communication with washing machines via message bus
1. Broker -- message broker used for backend's background tasks
1. DB -- PostgreSQL storing all the persistent data
1. Message bus -- MQTT broker for communicating with smart plugs
1. Smart plug -- vendor produced smart plug controlled via message bus