diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c035e55 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# temp files +.DS_Store + +# IDE files +.vscode/ +.idea/ + +# Python files +__pycache__/ +*.pyc +*.pyo + +# Virtual environments +env/ +.venv/ + +# environment variables +.env + +# github instruction files +.github/instructions/ diff --git a/README.md b/README.md index 1bf3432..592958f 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,13 @@ A web application to plan mining projects and estimate costs, returns and profitability. -## Tech Stack +Focuses on ore mining operations and covering parameters such as capital and operational expenditures, resource consumption, production output, and Monte Carlo simulations for risk analysis. -- **Backend**: Python 3.10+ (FastAPI) -- **Database**: PostgreSQL -- **Frontend**: (TBD) -- **Testing**: pytest +The system is designed to help mining companies make informed decisions by simulating various scenarios and analyzing potential outcomes based on stochastic variables. -## Planned Features +A range of features are implemented to support these functionalities. + +## Features - **Scenario Management**: The database supports different scenarios for what-if analysis, with parent-child relationships between scenarios. - **Monte Carlo Simulation**: The system can perform Monte Carlo simulations for risk analysis and probabilistic forecasting. @@ -21,6 +20,18 @@ A web application to plan mining projects and estimate costs, returns and profit - **Equipment Management**: The system manages equipment and their operational data. - **Maintenance Logging**: It includes a log for equipment maintenance events. +## Architecture + +The architecture is documented in [docs/architecture.md](docs/architecture.md). + +## Development + +The development setup instructions are provided in [docs/development_setup.md](docs/development_setup.md). + +## Testing + +Testing guidelines and best practices are outlined in [docs/testing.md](docs/testing.md). + ## Database Objects The database is composed of several tables that store different types of information. All tables are under schema `bricsium_platform`. See `structure.sql` for full DDL. Here are some of the most important ones: diff --git a/docs/implementation_plan.md b/docs/implementation_plan.md index fc3edc9..4b0ad91 100644 --- a/docs/implementation_plan.md +++ b/docs/implementation_plan.md @@ -6,7 +6,7 @@ 1. Create `models/scenario.py` for DB interactions. 2. Implement API endpoints in `routes/scenarios.py`: GET, POST, PUT, DELETE. -3. Add frontend component `components/ScenarioForm.vue` for CRUD. +3. Add frontend component `components/ScenarioForm.html` for CRUD. 4. Update `README.md` with API docs. ## Feature: Parameter Input and Validation @@ -15,7 +15,7 @@ 1. Define parameter schemas in `models/parameters.py`. 2. Create validation middleware in `middleware/validation.py`. -3. Build input form in `components/ParameterInput.vue`. +3. Build input form in `components/ParameterInput.html`. 4. Integrate with scenario management. ## Feature: Monte Carlo Simulation Run @@ -32,7 +32,7 @@ ### Reporting Implementation Steps 1. Create report service `services/reporting.py`. -2. Build dashboard component `components/Dashboard.vue`. +2. Build dashboard component `components/Dashboard.html`. 3. Fetch data from simulation results. 4. Add charts using Chart.js.