-
Notifications
You must be signed in to change notification settings - Fork 2
Architecture
Simon Larsson edited this page Feb 29, 2024
·
2 revisions
Most of the work has been done on the backend side of the system, with the frontend being somewhat low priority.
The backend is composed of many different parts, as can be seen in the figure below.
- Flask (Python web-framework): dynamically loads pages and content and communicates with the database.
- MySQL: database management system.
- Docker: provides containerization for Flask and MySQL, so that each of them runs in an isolated environment with the correct dependencies.
- Ansible: provides OS automatization and safe access to secrets.
- Github: version control and code hosting.
- Github Actions: allows for continuous deployment and testing.
- DigitalOcean: hosting provider.
The frontend is served by Flask and created by a combination of Bootstrap and manual HTML, CSS and JavaScript.
The system is implemented according to the Flask documentation: blueprints (Python files) are responsible for loading and modifying HTML templates and relevant assets. Helper functions are used for defining queries and transactions and for all other responsibilities that are not directly rendering HTML templates.