|
Cat Feeder
1.0.0
The Cat feeder project
|
This directory contains comprehensive architectural documentation for the Cat Feeder Backend, organized to match the actual source code structure in backend/src/.
Most of the manual documentation you will read has been AI Generated and partially reviewed by humnans. This documentation is to take with a grain of salt but should never the less provide an overview of the inner workings of the project.
| File | Description |
|---|---|
| 00_ARCHITECTURE.md | System architecture, design patterns, and module interactions |
| File | Description |
|---|---|
| project_structure.md | Directory structure, entry points, assets, dependencies |
| server_main.md | Entry point and CLI arguments |
backend/src/libs/ and backend/src/config/)| Module | Description | Documentation |
|---|---|---|
| config/ | Configuration & environment loading | config/config.md |
| server.py | Main Server orchestration | server/server.md |
| boilerplates/ | Request/Response handlers | boilerplates/boilerplates.md |
| bucket/ | S3 storage (MinIO) | bucket/bucket.md |
| core/ | RuntimeManager, Singletons | core/core.md |
| crons/ | Background tasks | crons/crons.md |
| docs/ | API documentation | docs/docs.md |
| e_mail/ | Email management | e_mail/e_mail.md |
| endpoint_manager/ | Endpoint registration | endpoint_manager/endpoint_manager.md |
| fffamily/ | FFmpeg utilities | fffamily/fffamily.md |
| http_codes/ | HTTP status codes | http_codes/http_codes.md |
| path_manager/ | Route management | path_manager/path_manager.md |
| redis/ | Redis caching | redis/redis.md |
| server_header/ | CORS, security headers | server_header/server_header.md |
| sql/ | Database (MySQL) | sql/sql.md |
| utils/ | OAuth, passwords, etc. | utils/utils.md |
| File | Description |
|---|---|
| QUICK_START.md | Quick start guide for development |
| 00_ARCHITECTURE.md | Documentation overview |
This documentation serves multiple purposes:
See QUICK_START.md for a full quickstart. Key points summarized here:
The PlantUML diagrams will be rendered as images in the HTML output.
All diagrams use PlantUML syntax for the following reasons:
✅ Advantages:
The backend follows a layered architecture:
Implementation: RuntimeManager
Implementation: FinalSingleton base class
Implementation: PathManager
Implementation: BoilerplateResponses / BoilerplateIncoming
00_ARCHITECTURE.md → 01_CORE.md02_DATA_LAYER.md for database/caching03_APPLICATION_LAYER.md for endpoint management00_ARCHITECTURE.md (high-level only)03_APPLICATION_LAYER.md → EndpointManager/docs endpoint00_ARCHITECTURE.md → Architecture Diagram00_ARCHITECTURE.md → Testing StrategyWhen adding new modules:
.md file following naming conventionPlantUML diagrams can be edited directly in the .md files:
After editing, regenerate Doxygen documentation to see rendered diagrams.
../doxygen_generation/documentation/html/index.html (after generation)../backend/src/libs/http://localhost:5000/docs (when server running)Note about live API documentation endpoints: The live API documentation endpoints (for example http://localhost:5000/docs, http://localhost:5000/redoc, http://localhost:5000/rapidpdf, http://localhost:5000/scalar, http://localhost:5000/editor, http://localhost:5000/elements, http://localhost:5000/explorer) are only available when the corresponding documentation endpoints are enabled in your project's .env configuration. Check sample.env or your environment settings and enable the API docs features before expecting these routes to be accessible.
{#anchor_name} for Doxygen anchors!theme plain for consistency\ref for cross-referencesWhen contributing to this documentation:
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2025-12-02 | Initial comprehensive documentation created |
Questions? Check the Overview or consult the generated Doxygen documentation.