Backend
Strapi 5 - a headless CMS is used as a backend, which allows to easily set up a number of database tables, manage them with an admin frontend, and a rich API service layer around them.
Strapi allows implementing custom lifecycle functions (e.g., beforeCreate, afterCreate), and also own services related to any of the data tables (or a combination thereof) as web service endpoints. Furthermore, data independent functionality can be set up on own routes (comparable to cloudflare workers).
On top of this, it provides the possibility to extend the Admin Panel with own pages etc. written in React - we only make limited use of it.
Strapi's Admin Panel can also be extended with so-called plugins which contain backend and frontend components - this is however not used in this project.
More details and the source code can be found in this repository
