24 lines
1.5 KiB
Markdown
24 lines
1.5 KiB
Markdown
# Technical Assumptions
|
|
|
|
## Repository Structure: Monorepo
|
|
|
|
The project will use a Monorepo to simplify dependency management and code sharing between modules.
|
|
|
|
## Service Architecture
|
|
|
|
The application will be built as a single Python application (Monolith) with distinct modules. It will expose an internal REST API (using Flask or FastAPI) for communication. While initially consumed only by the link-building machine, this API should be designed with standard practices to allow for future consumption by other internal applications.
|
|
|
|
## Testing Requirements
|
|
|
|
The project will require both Unit tests for individual functions and Integration tests to ensure modules and cloud services work together correctly.
|
|
|
|
## Additional Technical Assumptions and Requests
|
|
|
|
- **Primary Language**: Python.
|
|
- **Database**: SQLite for the MVP.
|
|
- **Data Access**: A database-agnostic data access layer (Repository Pattern) must be used to facilitate a future migration to PostgreSQL.
|
|
- **Cloud Integration**: The system will use Boto3 for S3, the Azure SDK for Blob Storage, and refactor existing code for Bunny.net and other specified cloud providers.
|
|
- **Configuration**: A central JSON file will manage the workflow for each project.
|
|
- **Credentials**: All secrets and API keys will be stored in and accessed from a .env file.
|
|
- **API Design for Future Use**: The internal REST API must be designed with clean, well-documented endpoints and data contracts, anticipating potential future use by other internal systems on the network.
|