Putting together the monolithic design
This monolithic design is a solid foundation and should be the kind of result you would aim for in your first development iteration. Everything should be created with tests and documentation, as explained in Chapter 3, Coding, Testing, and Documentation: the Virtuous Cycle.
It is a short and clean implementation on top of a relational database that can be deployed with a PostgreSQL, MySQL, or a cloud provider's own SQL database. Thanks to the SQLAlchemy abstractions, a local version can run with SQLite 3 and facilitate your day-to-day development and local testing. To build this app, we've used the following extensions and libraries:
- aiohttp: This handles all the outgoing HTTP requests
- SQLAlchemy: This is used for the model
- Flask-WTF and WTForms: These are used for all the forms
- Celery and RabbitMQ: These are used for background processes and periodic tasks
- quart-auth: This is used for managing...