This document outlines the standardized structure for all project repositories to ensure consistency and ease of collaboration.
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
<kbd>Required</kbd> = Must exist from Day 1 (can be empty initially)
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 ) |
File | Command/Usage |
---|---|
requirements.txt |
pip install -r requirements.txt |
Dockerfile |
docker build -t project-name . |
README.md |
Project documentation hub |
File | Command/Usage |
---|---|
scripts/ |
Shell scripts for automation |
tests/ |
Unit and integration tests (test_*.py ) |
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
src/data/
→ src/datasets/
)