63 lines
3.8 KiB
Markdown
63 lines
3.8 KiB
Markdown
---
|
|
title: "01 — Introduction and Goals"
|
|
description: "System purpose, stakeholders, and high-level goals; project introduction and business/technical goals."
|
|
status: draft
|
|
---
|
|
|
|
# 01 — Introduction and Goals
|
|
|
|
## Purpose
|
|
|
|
CalMiner aims to provide a comprehensive platform for mining project scenario analysis, enabling stakeholders to make informed decisions based on data-driven insights.
|
|
|
|
## Stakeholders
|
|
|
|
- **Project Managers**: Require tools for scenario planning and risk assessment.
|
|
- **Data Analysts**: Need access to historical data and simulation results for analysis.
|
|
- **Executives**: Seek high-level insights and reporting for strategic decision-making.
|
|
|
|
## High-Level Goals
|
|
|
|
1. **Comprehensive Scenario Analysis**: Enable users to create and analyze multiple project scenarios to assess risks and opportunities.
|
|
2. **Data-Driven Decision Making**: Provide stakeholders with the insights needed to make informed decisions based on simulation results.
|
|
3. **User-Friendly Interface**: Ensure the platform is accessible and easy to use for all stakeholders, regardless of technical expertise.
|
|
|
|
## System Overview
|
|
|
|
FastAPI application that collects mining project inputs, persists scenario-specific records, and surfaces aggregated insights. The platform targets Monte Carlo driven planning, with deterministic CRUD features in place and simulation logic staged for future work.
|
|
|
|
Frontend components are server-rendered Jinja2 templates, with Chart.js powering the dashboard visualization. The backend leverages SQLAlchemy for ORM mapping to a PostgreSQL database.
|
|
|
|
### Runtime Flow
|
|
|
|
1. Users navigate to form templates or API clients to manage scenarios, parameters, and operational data.
|
|
2. FastAPI routers validate payloads with Pydantic models, then delegate to SQLAlchemy sessions for persistence.
|
|
3. Simulation runs (placeholder `services/simulation.py`) will consume stored parameters to emit iteration results via `/api/simulations/run`.
|
|
4. Reporting requests POST simulation outputs to `/api/reporting/summary`; the reporting service calculates aggregates (count, min/max, mean, median, percentiles, standard deviation, variance, and tail-risk metrics at the 95% confidence level).
|
|
5. `templates/Dashboard.html` fetches summaries, renders metric cards, and plots distribution charts with Chart.js for stakeholder review.
|
|
|
|
### Current implementation status (summary)
|
|
|
|
- Currency normalization, simulation scaffold, and reporting service exist; see [quickstart](docs/quickstart.md) for full status and migration instructions.
|
|
|
|
## MVP Features (migrated)
|
|
|
|
The following MVP features and priorities were defined during initial planning.
|
|
|
|
### Prioritized Features
|
|
|
|
1. **Scenario Creation and Management** (High Priority): Allow users to create, edit, and delete scenarios. Rationale: Core functionality for what-if analysis.
|
|
1. **Parameter Input and Validation** (High Priority): Input process parameters with validation. Rationale: Ensures data integrity for simulations.
|
|
1. **Monte Carlo Simulation Run** (High Priority): Execute simulations and store results. Rationale: Key differentiator for risk analysis.
|
|
1. **Basic Reporting** (Medium Priority): Display NPV, IRR, EBITDA from simulation results. Rationale: Essential for decision-making.
|
|
1. **Cost Tracking Dashboard** (Medium Priority): Visualize CAPEX and OPEX. Rationale: Helps monitor expenses.
|
|
1. **Consumption Monitoring** (Low Priority): Track resource consumption. Rationale: Useful for optimization.
|
|
1. **User Authentication** (Medium Priority): Basic login/logout. Rationale: Security for multi-user access.
|
|
1. **Export Results** (Low Priority): Export simulation data to CSV/PDF. Rationale: For external analysis.
|
|
|
|
### Rationale for Prioritization
|
|
|
|
- High: Core simulation and scenario features first.
|
|
- Medium: Reporting and auth for usability.
|
|
- Low: Nice-to-haves after basics.
|