Client
Bookplay GmbH
Project
Mobile App, Backend, and IAM for book-play.de: Leveraging Modular Monolith, CQRS, Event Sourcing, and Scalable Infrastructure as Code
Description
We designed and implemented the backend using Python Flask, uWSGI, Nginx, Traefik, PostgreSQL, and Redis, following modular monolith principles with CQRS and Event Sourcing. We processed e-book content to enable a speech-recognition-based search algorithm. With Flutter & Dart we re-implemented the iOS and Android app with a new UI and functionality. We developed OpenAPI-based RESTful APIs for user and content management, as well as for searching books. We set up an IAM with a customized Keycloak instance. We also defined the server infrastructure as code (IaC) using Ansible and Docker for deployment on Hetzner Cloud.

Key Activities
- Design and implementation of a backend system with Python Flask, uWSGI, Nginx, Traefik, PostgreSQL & Redis, using the principles of a modular monolith, CQRS & Event Sourcing
- Processing of e-book content from publishers for a search algorithm to recognize book excerpts based on speech recognition from a mobile device
- Re-implementation of the associated mobile app for Apple iOS and Google Android with Flutter and Dart based on new app designs (functionality and UI)
- Connecting the mobile app and the backend with OpenAPI v3 schema-based RESTful APIs for user and content management, as well as searching for books and content
- Integration of the official RESTful API of the Association of Available Books (VLB) for accessing book information
- Setting up an identity and access management (IAM) with a customized Keycloak instance for the involved applications
- Defining the server infrastructure as code (IaC) with Ansible and Docker for deploying the applications in the Hetzner Cloud
- Continuous Integration and Continuous Deployment (CI/CD) with GitHub Actions, Firebase App Distribution, and Apple Testflight
- Review support for publishing the app in the Apple AppStore and Google PlayStore