Skip to main content

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​

DirectoryRole
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​

FileRole
README.mdPresentation, quick links and getting-started guide
pyproject.toml, requirements.txtPackaging configuration and Python dependencies
ROADMAP.mdLong-term vision and goals of the project
.env.exampleTemplate for the environment variables (credentials)
.gitignoreFiles 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.

Architecture philosophy

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.