36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# System Components
|
|
|
|
The application will be structured into the following distinct modules within the source directory.
|
|
|
|
## Core Modules
|
|
|
|
### cli
|
|
Contains all Click command definitions. This is the user-facing entry point. It orchestrates calls to other modules but contains no business logic itself.
|
|
|
|
### core
|
|
Handles application-wide concerns like configuration loading (master.json, .env), logging setup, and core application state.
|
|
|
|
### database
|
|
Defines the SQLAlchemy models, repository interfaces (ABCs), and concrete repository implementations for SQLite. Manages the database session.
|
|
|
|
### auth
|
|
Manages user authentication, password hashing, and role-based access control logic. Used by both the CLI and the API.
|
|
|
|
### ingestion
|
|
Responsible for parsing the CORA .xlsx files and creating new Project entries in the database.
|
|
|
|
### generation
|
|
Interacts with the AI service API. It takes project data, constructs prompts, and retrieves the generated text. Includes the Content Rule Engine for validation.
|
|
|
|
### templating
|
|
Takes raw generated text and applies the appropriate HTML/CSS template based on the project's configuration.
|
|
|
|
### interlinking
|
|
Contains the logic for generating the batch URL map and injecting the "wheel" of links into the generated HTML.
|
|
|
|
### deployment
|
|
Implements the Strategy Pattern for multi-cloud deployments. Contains a base DeploymentStrategy and concrete classes for each provider (AWS S3, Azure Blob, etc.).
|
|
|
|
### api
|
|
The FastAPI application. Defines API models (using Pydantic), routes, and dependencies. It will use the auth and database modules to service requests.
|