ajjNV5 / Potential-Study-Tool

NV5 Demand Side Management Interactive Tool
0 stars 1 forks source link

Restructure project into a suggested Streamlit directory structure #12

Open mcfink-NV5 opened 1 month ago

mcfink-NV5 commented 1 month ago

I'd propose restructuring the project to look a bit more like this one: https://github.com/markdouthwaite/streamlit-project/blob/master/docs/template-info.md

notably, it has specific directories for...

mcfink-NV5 commented 1 month ago

Actually - here's perhaps a better structure (suggested by copilot): streamlit_app/ ├── .streamlit/ │ ├── config.toml │ └── secrets.toml ├── data/ │ ├── raw/ │ ├── processed/ │ └── external/ ├── src/ │ ├── init.py │ ├── data/ │ │ ├── init.py │ │ ├── load_data.py │ │ └── preprocess.py │ ├── features/ │ │ ├── init.py │ │ └── feature_engineering.py │ ├── models/ │ │ ├── init.py │ │ ├── train_model.py │ │ └── predict_model.py │ ├── visualization/ │ │ ├── init.py │ │ └── visualize.py │ └── utils/ │ ├── init.py │ └── helpers.py ├── tests/ │ ├── init.py │ ├── test_load_data.py │ ├── test_preprocess.py │ ├── test_feature_engineering.py │ ├── test_train_model.py │ ├── test_predict_model.py │ └── test_visualize.py ├── app.py ├── environment.yml ├── README.md └── requirements.txt

explanations: .streamlit/: Contains Streamlit-specific configuration files.

config.toml: Configuration settings for Streamlit. secrets.toml: Secret keys and sensitive information. data/: Directory for storing data files.

raw/: Raw data files. processed/: Processed data files. external/: External data files. src/: Source code for the application.

data/: Scripts for loading and preprocessing data. load_data.py: Functions to load data. preprocess.py: Functions to preprocess data. features/: Scripts for feature engineering. feature_engineering.py: Functions for feature engineering. models/: Scripts for model training and prediction. train_model.py: Functions to train models. predict_model.py: Functions to make predictions. visualization/: Scripts for data visualization. visualize.py: Functions to create visualizations. utils/: Utility functions and helpers. helpers.py: Helper functions. tests/: Unit tests for the application.

test_load_data.py: Tests for load_data.py. test_preprocess.py: Tests for preprocess.py. test_feature_engineering.py: Tests for feature_engineering.py. test_train_model.py: Tests for train_model.py. test_predict_model.py: Tests for predict_model.py. test_visualize.py: Tests for visualize.py. app.py: Main Streamlit app script.

environment.yml: Conda environment configuration file.

README.md: Project documentation.

requirements.txt: Python package dependencies (if using pip).