Big-Link-Man/docs/prd/technical-assumptions.md

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.