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

1.5 KiB

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.