-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
The project architecture is based on a layered structure that combines a dynamic front-end, a robust back-end, and a database. This approach allows for a clear separation of responsibilities, facilitating maintenance, scalability, and integration of new features. The front-end, built with React, manages the user interface and interactions, while the back-end, developed in Python, handles the business logic and API requests. The database stores information about users, books, and the relationships between these entities.

It is important to note that the technologies chosen may evolve as the project progresses. For this reason, the versions used will also be specified in this document, in order to maintain a consistent environment between contributors.
Stack
Testing
Deployment
- Google cloud, Cloud Run + Compute Engine
Stack
- Flask v3.0.3
- Opencv-python-headless v4.10.0.84
- Easyocr v1.7.1
- Flask-JWT-Extended v4.6.0
- SQLAlchemy ~= v2.0.7
Testing
Deployment
- Google cloud, Cloud Run + Compute Engine
Stack
We chose Microsoft SQL Server (MSSQL) as our database management system due to its robustness, performance, and compatibility with enterprise environments. MSSQL offers advanced transaction management and security features, making it a solid choice for our project’s needs.
The database is deployed via Google Cloud SQL, a Platform as a Service (PaaS) solution that greatly simplifies the process of configuring and managing database instances. This cloud deployment approach allows us to leverage Google Cloud Platform’s (GCP) scalable and secure infrastructure while reducing maintenance overhead.
We use SQLAlchemy as the Object-Relational Mapping (ORM) tool to interact with the database. SQLAlchemy allows us to abstract SQL operations while maintaining maximum flexibility for executing complex queries. This abstraction layer also enhances code portability, ensuring that database changes are consistently reflected across the application.
More information about the database and its implementation can be found in the dedicated section, Data model
The project uses the Google Books API to automatically retrieve book information via the ISBN, reducing the amount of manual input required by users.