- 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
1.6 KiB
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-dotenvand stored inconfig/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
- User inputs scenario parameters via frontend.
- Backend validates and stores in database.
- Simulation engine runs Monte Carlo iterations using stochastic variables.
- Results stored in
simulation_resulttable. - 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_consumptionproduction_output,equipment_operation,ore_batchexchange_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.