This repository contains a custom ML app serving via Flask.
- Python 3.8+
- cookiecutter
- WSL
$ pip install cookiecutter
# HTTPS
$ cookiecutter https://github.com/likamee/ml-boilerplate.git
or
# SSH
$ cookiecutter [email protected]:likamee/ml-boilerplate.git
The directory structure of your new project looks like this:
├── LICENSE
├── README.md <- The top-level README for developers using this project.
├── .github
│ ├── workflows <- The pipelines for the github actions.
│ │ ├── pull_request_opened.yaml <- Linter & Unit Tests Pipeline.
│ │ └── sonar.yaml <- Sonar Pipeline.
│ └── PULL_REQUEST_TEMPLATE.md
├── .vscode
│ └── settings.json <- The VS Code Settings .
├── data
│ ├── staging <- The final, canonical data sets for modeling.
│ ├── wrangling <- Intermediate data that has been transformed.
│ └── raw <- The original, immutable data dump.
├── models <- Trained and serialized models, model predictions, or model summaries
├── docs <- The tecnical documenttation
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-flc-initial-data-exploration`.
├── references <- Data dictionaries, manuals, and all other explanatory materials.
├── reports <- Generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
├── sandbox <- Intended for testing stuff, poc, etc.
├── ml_app <- Flask Structure Application.
│ ├── app <- Flask Application.
│ │ ├── api <- The API module
│ │ │ ├── templates <- HTML templates for Flask Front-end.
│ │ │ ├── routes.py <- The routes for the Flask endpoint.
│ │ │ └── __init__.py <- The Flask blueprint for api module
│ │ └── __init__.py <- The App startup.
│ ├── tests <- Intended for unit testing
│ │ ├── __init__.py
│ │ ├── conftest.py <- The Pytest Fixtures Structure.
│ │ └── test_app.py <- The Minimal Flask Unit Test.
│ ├── .env <- Credentials and Secrets for Flask use.
│ ├── config.py <- The static configuration of the application.
│ ├── entrypoint.sh <- Entrypoint with gunicorn for DOCKERFILE.
│ └── ml_app.py <- App Module Defintion.
├── .dockerignore
├── .editorconfig <- EditorConfig Extension Configuration.
├── .env <- Credentials and Secrets for the project structure use.
├── .flake8 <- Flake8 Linter Configuration.
├── .flaskenv <- Flask App Defintion.
├── .gitignore
├── .gitattributes
├── .pre-commit-config.yaml <- Pre Commit Configuration.
├── CHANGELOG.md
├── DOCKERFILE
├── poetry.toml
├── post-gen.sh <- Entrypoint for autosetup with Cookiecutter
├── pyproject.toml
└── sonar-project.properties <- Sonar Configuration.
- EditorConfig - (.editorconfig)
- GitHub Actions - (.github/workflows)
- GitHub Pull Requst Template - (.github/PULL_REQUEST_TEMPLATE.md)
- VS Code Settings (.vscode/settings.json)
- Flake8 - (.flake8)
- Git - (.gitignore)
- Pre Commit - (.pre-commit-config.yaml)
- ChangeLog - (CHANGELOG.md)
- Poetry - (pyproject.toml, poetry.lock, poetry.toml)
- Readme - (README.md)