Project Repository Structure 📁

This document outlines the standardized structure for all project repositories to ensure consistency and ease of collaboration.

Repository Structure

project-root/
├── media/                # Static assets (non-Python)
│   ├── image1.png        # Documentation/images
│   └── image2.jpg        # Screenshots/visuals
│
├── data/                  # Datasets (non-Python)
│   ├── raw/              # Original, immutable data
│   ├── processed/        # Cleaned and transformed data
│   └── external/         # Third-party data
│
├── notebooks/            # Jupyter notebooks (non-Python)
│
├── src/                  # Source code (Python package)
│   ├── __init__.py
│   ├── data/             # Data processing
│   ├── models/           # Model code
│   ├── evaluation/       # Evaluation logic
│   ├── visualization/    # Visualization tools
│   ├── utils/            # Utilities
│   ├── processing/       # processing (pre-post)
│   ├── train.py          # Main training script
│   └── eval.py           # Main evaluation script
│
├── experiments/           # Experiment results (non-Python)
│   ├── experiment_1/
│   │   ├── logs/
│   │   └── checkpoints/
│   └── experiment_2/
│       ├── logs/
│       └── checkpoints//
│
├── scripts/              # Helper scripts (.sh/.bash)
├── tests/                # Test cases
├── config/               # Configuration files
├── requirements.txt      # Python dependencies
├── Dockerfile            # Environment setup
├── .gitignore            # Git exclusion rules
└── README.md             # Project documentation

Key Files & Folders 🔑

<kbd>Required</kbd> = Must exist from Day 1 (can be empty initially)

Core Structure

Folder/File Status Contents Description
media/ <kbd>Recommended</kbd> Documentation images (*.png, *.jpg)
data/ <kbd>Required</kbd> Datasets storage:
notebooks/ <kbd>Required</kbd> Jupyter notebooks for exploration & demos
src/ <kbd>Required</kbd> Main Python package with modules:
experiments/ <kbd>Required</kbd> Training runs (logs/checkpoints)
config/ <kbd>Required</kbd> Configuration files (*.yaml, *.json)

Essential Files

File Command/Usage
requirements.txt pip install -r requirements.txt
Dockerfile docker build -t project-name .
README.md Project documentation hub

Supplementary Folders

File Command/Usage
scripts/ Shell scripts for automation
tests/ Unit and integration tests (test_*.py)

Python Module Requirements 🐍

All subfolders under src/ must be proper Python modules:

src/
├── __init__.py          # Required for root package
└── data/
    ├── __init__.py      # Required for module
    └── loader.py       # Import via: from src.data import loader

Repository Rules 🚦

Folder Naming

Module Management