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

1.6 KiB

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.