Data Science Project Structure

Sources:

Assuming that Python is they main language for a data science project. Assuming also to use Python venv.

The following structure is adapted from: https://github.com/CodeCutTech/data-science-template/tree/dvc-pip

.
├── README.md
├── pyproject.toml
├── .gitignore
├── LICENSE
│
├── configs/                # Main configuration file
│   ├── main.yaml           # Configurations for training model
│   ├── model/
|   |   |── model1.yaml
|   |   |── model2.yaml
|   ├── process/            # Configuration for process
|       ├── process1.yaml
│
├── data/                      
│   ├── final/              # Data after training
│   ├── processed/          # Data after processing
|	├── raw/                # Raw data
|
├── docs/                   # Documentation
├── models/                 # Store models  
├── notebooks/              # Store notebooks
│
├── src/                    # Source code
│   ├── __init__.py
│   ├── process.py
│   ├── __pycache__/
│   ├── train_mode.py
│
├── scripts/                    # Utility scripts
│   ├── download_data.sh
│   ├── download_models.sh
│
├── tests/                      # Unit tests
│   ├── __init__.py
│   ├── test_process.py
│   └── test_training.py

Explanation with each part: