Files
calminer/docs/architecture.md
zwitschi 39c45e720c Add initial implementation of CalMiner with project structure, environment setup, and core features
- Create .env.example for environment variables
- Update README with project structure and development setup instructions
- Implement FastAPI application with API routes for scenarios and parameters
- Add database models for scenarios, parameters, and simulation results
- Introduce validation middleware for JSON requests
- Create services for running simulations and generating reports
- Add testing strategy and directory structure in documentation
2025-10-20 18:37:57 +02:00

42 lines
1.6 KiB
Markdown

# Architecture Documentation
## Overview
CalMiner is a web application for planning mining projects, estimating costs, returns, and profitability. It uses Monte Carlo simulations for risk analysis and supports multiple scenarios.
## System Components
- **Frontend**: Web interface for user interaction (to be defined).
- **Backend**: Python API server (e.g., FastAPI) handling business logic.
- **Database**: PostgreSQL.
- **Configuration**: Environment variables and settings loaded via `python-dotenv` and stored in `config/` directory.
- **Simulation Engine**: Python-based Monte Carlo runs and stochastic calculations.
- **API Routes**: FastAPI routers defined in `routes/` for scenarios, simulations, consumptions, and reporting endpoints.
## Data Flow
1. User inputs scenario parameters via frontend.
2. Backend validates and stores in database.
3. Simulation engine runs Monte Carlo iterations using stochastic variables.
4. Results stored in `simulation_result` table.
5. Frontend displays outputs like NPV, IRR, EBITDA.
## Database Architecture
- Schema: `bricsium_platform`
- Key tables include:
- `scenario` (scenario metadata and parameters)
- `capex`, `opex` (capital and operational expenditures)
- `chemical_consumption`, `fuel_consumption`, `water_consumption`, `scrap_consumption`
- `production_output`, `equipment_operation`, `ore_batch`
- `exchange_rate`, `simulation_result`
- Relationships: Foreign keys link scenarios to parameters, consumptions, and simulation results.
## Next Steps
- Define API endpoints.
- Implement simulation logic.
- Add authentication and user management.