Files
calminer/docs/architecture/04_strategy/04_02_technology_choices.md
zwitschi ef4fb7dcf0
Some checks failed
Run Tests / e2e tests (push) Failing after 1m20s
Run Tests / unit tests (push) Has been cancelled
Run Tests / lint tests (push) Has been cancelled
Refactor architecture documentation and enhance security features
- Updated architecture constraints documentation to include detailed sections on technical, organizational, regulatory, environmental, and performance constraints.
- Created separate markdown files for each type of constraint for better organization and clarity.
- Revised the architecture scope section to provide a clearer overview of the system's key areas.
- Enhanced the solution strategy documentation with detailed explanations of the client-server architecture, technology choices, trade-offs, and future considerations.
- Added comprehensive descriptions of backend and frontend components, middleware, and utilities in the architecture documentation.
- Migrated UI, templates, and styling notes to a dedicated section for better structure.
- Updated requirements.txt to include missing dependencies.
- Refactored user authentication logic in the users.py and security.py files to improve code organization and maintainability, including the integration of OAuth2 password bearer token handling.
2025-10-27 12:46:51 +01:00

1.3 KiB

title, description
title description
04.02 — Technology Choices Detailed explanation of technology choices in CalMiner.

04.02 — Technology Choices

  • FastAPI: Chosen for its high performance, ease of use, and modern features like async support and automatic OpenAPI documentation.
  • PostgreSQL: Selected for its robustness, scalability, and support for complex queries, making it suitable for handling the diverse data needs of mining project management.
  • SQLAlchemy: Provides a flexible and powerful ORM layer, facilitating database interactions while maintaining code readability and maintainability.
  • Chart.js: Utilized for its simplicity and effectiveness in rendering interactive charts, enhancing the user experience on the dashboard.
  • Jinja2: Enables server-side rendering of HTML templates, allowing for dynamic content generation while keeping the frontend lightweight.
  • Pydantic: Used for data validation and serialization, ensuring that incoming request payloads conform to expected schemas.
  • Docker: Employed for containerization, ensuring consistent deployment across different environments and simplifying dependency management.
  • Redis: Used as an in-memory data store to cache frequently accessed data, improving application performance and reducing database load.