Project Structure
The AstroSpectro repository is organised in a modular architecture to support reproducibility, scientific extension and maintenance. This page describes the main directories and their role.
File tree overview
Main directories
| Directory | Role |
|---|---|
src/ | Core Python pipeline (business logic) |
notebooks/ | Dashboards for orchestration and analysis |
data/ | Raw data, catalogues, feature tables, trained models (data/models/) and session reports (data/reports/); generated content is not tracked by Git |
.devcontainer/, .github/ | Codespaces and GitHub configuration |
Download logs and session logs are written to logs/ when the pipeline runs. The repository root also holds scripts/, static/ and a few helper files such as app.py; they are not part of the documented pipeline.
Root files
| File | Role |
|---|---|
README.md | Presentation, quick links and getting-started guide |
pyproject.toml, requirements.txt | Packaging configuration and Python dependencies |
ROADMAP.md | Long-term vision and goals of the project |
.env.example | Template for the environment variables (credentials) |
.gitignore | Files and folders ignored by Git |
Key folder details
src/: the project engine
All modular Python code, in two key subfolders:
pipeline/: the building blocks of the scientific processing chain (preprocessing, feature extraction, classification).tools/: utilities for data management and interfaces (downloader, visualiser, etc.).
notebooks/: the dashboards
Each notebook has a precise role:
00_master_pipeline: the production interface for launching complete training cycles.01_download_spectra: the data management interface (download, cleanup).02_tools_and_visuals: the laboratory for exploration, analysis and debugging.
data/: the data warehouse
Raw spectra, generated catalogues, extracted features, trained models and session reports. The folder is deliberately ignored by Git to avoid overloading the repository.
The strict separation between src/ (pure, testable code) and notebooks/ (interactive orchestration) is a fundamental design choice. It keeps the project modular, reusable and maintainable.