The repository is organized to separate source code, model pipeline code, generated or binary artifacts, local data, runtime state, and documentation.
.
├── dermascan_app/
│ ├── app.py
│ ├── inference.py
│ ├── requirements.txt
│ └── templates/
├── ml_pipeline/
│ ├── config/
│ │ └── model_parameters.json
│ ├── evaluation/
│ │ └── evaluate_cnn.py
│ ├── registry/
│ │ └── progress_log.csv
│ └── training/
│ └── train_cnn.py
├── artifacts/
│ ├── models/
│ │ └── current/
│ │ └── melanoma_detector.keras
│ └── sample_inputs/
│ └── legacy_uploads/
├── data/
│ └── README.md
├── var/
│ ├── README.md
│ └── uploads/
├── docs/
│ ├── archived_previous_documents/
│ └── *.md
├── README.md
├── SECURITY.md
└── LICENSE
| Name | Rationale |
|---|---|
dermascan_app/ |
Runtime application code only. This avoids the vague backend label and ties the folder to the product prototype. |
ml_pipeline/ |
Training, evaluation, configuration, and registry files live together as the reproducibility surface. |
ml_pipeline/config/ |
Parameters that define a model run belong in a predictable config home. |
ml_pipeline/registry/ |
Historical metrics and model iteration records are treated as registry metadata. |
artifacts/ |
Binary or non-source assets live outside app and pipeline source. |
artifacts/models/current/ |
The app has a stable path for the currently packaged model. |
artifacts/sample_inputs/legacy_uploads/ |
Old uploads are preserved as reviewable samples, not runtime state. |
data/ |
Local datasets and manifests belong here, but datasets are intentionally not committed. |
var/ |
Runtime state such as local uploads belongs here and should stay out of source control. |
docs/archived_previous_documents/ |
Previous documentation is preserved without competing with the active docs. |
Future model work should be reproducible from:
data/dataset manifestsml_pipeline/config/model_parameters.jsonml_pipeline/training/train_cnn.pyml_pipeline/evaluation/evaluate_cnn.pyml_pipeline/registry/progress_log.csvartifacts/models/current/melanoma_detector.keras
Any new model release should record:
- dataset version
- train/validation/test split manifest
- dependency versions
- training command
- evaluation command
- threshold policy
- generated metrics
- model artifact path