Skip to content

📂 File Structure

project/
├── .github/                # GitHub specific files
|   ├── workflows/              # GitHub actions as workflows
|   └── release.yml             # Categories and labels for release notes
├── .vscode/                # VSCode specific files
|   ├── extensions.json         # Recommended extensions for the workspace
|   └── settings.json           # Common VSCode settings for the workspace (e.g. formatting, linting, etc...)
├── data/                   # Data used for this project (SHOULD NOT BE INCLUDED IN THE REPOSITORY)
|   ├── external/               # Data from third party sources
|   ├── processed/              # The final datasets for modeling
|   └── raw/                    # The original raw data
├── docs/                   # Documentation of this project
|   ├── assets/                 # Any assets (images, audios, videos, js, css, html, etc...) used for the documentation
|   ├── diagrams/               # Diagrams related to this project
|   ├── pages/                  # MkDocs pages - markdown files
|   ├── references/             # References related to this project (papers, articles, manuals, etc...)
|   └── reports/                # Reports based on results of this project
├── examples/               # Example source codes of this project
├── models/                 # Directory for storing multiple models (SHOULD NOT BE INCLUDED IN THE REPOSITORY)
|   ├── model.v1/               # AI/ML model files, weights, artifacts, checkpoints, metadata, and configs
|   ├── model.v2/
|   └── .../
├── notebooks/              # Jupyter notebooks for exploratory data analysis, data preprocessing, model training, etc...
├── requirements/           # Python dependency requirements for different environments
├── results/                # Results of this model (SHOULD NOT BE INCLUDED IN THE REPOSITORY)
├── scripts/                # Helpful scripts to automate tasks or assist in the development process
├── simple_model/           # Main CODEBASE of this project as a python module
|   ├── modules/                # External modules for this project
|   |   ├── module_1/
|   |   ├── module_2/
|   |   └── .../
|   ├── __init__.py             # Initialize the module to be used as a package
|   ├── __version__.py          # Version of the module (should be updated and used with each release)
|   └── ...                     # Other main python files of this module
├── templates/              # Template files (if any, e.g. config files, etc...) used in this project
├── tests/                  # Tests for this project
|   ├── __init__.py             # Initialize the test module
|   ├── conftest.py             # Presets for pytest (e.g. fixtures, plugins, pre/post test hooks, etc...)
|   ├── test_1.py               # Test case files
|   ├── test_2.py
|   └── ...
├── __init__.py             # Initialize the whole project as a python module to import from other modules
├── .editorconfig           # Editor configuration for consistent coding styles for different editors
├── .env.example            # Example environment variables file
├── .gitignore              # Files and directories to be ignored by git (e.g. data, models, results, etc...)
├── .markdownlint.json      # Markdown linting rules
├── CHANGELOG.md            # List of changes for each version of the project
├── environment.yml         # Conda environment file
├── LICENSE.txt             # License file for this project
├── Makefile                # Makefile for common commands and automation
├── MANIFEST.in             # Manifest file for setuptools (to include/exclude files in the source distribution)
├── mkdocs.yml              # MkDocs configuration file
├── pyproject.toml          # PEP 518 configuration file for python packaging
├── pytest.ini              # Pytest configuration file
├── README.md               # Main README file for this project
├── requirements.txt        # Main python dependency requirements for this project
├── setup.cfg               # Configuration for setuptools
└── setup.py                # Setup script for setuptools (for backward compatibility)