Demo full stack machine learning
- Linux, MacOS or Windows with WSL 2:
- Python >=3.9: Python Docs
- Node: Node Docs
- Pip: Pip Docs
- Git: Git Docs
- pre-commit: Pre-commit Docs
- Poetry: Poetry Docs
- Docker and Docker Compose:
- Snyk: Snyk (Requires license)
Add libraries and projects as source root:
- projects/backend
- libraries/imagenet
- etc.
Make sure .env is populated, then run docker-compose:
docker-compose up
We apply the following philosophies:
- Pre-commit with black, flake8, isort and prettier to ensure uniform style throughout the project
- Pre-commit with bandit to uncover security issues within the code
- Conventional commits
- Semantic versioning
- Add .snyk for dependency scanning
- Add GitHub Actions pipeline for CI and later CD.
- Create explicitly separate network for backend network vs. Traefik proxy. Ensure we get certificates.
- Ensure docker containers are running as non-root -> bitnami containers or manual handling
- Use KeyVault or similar for secrets handling instead of environmental variables
- Set up test db.
- Implement OpenAPI Generator into the CI/CD
- Run Imagenet/Tensorflow as a separate service.
- Change to Oauth (Authorization flow)[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow] or other flow depending on needs.
- Use OAuth2 scopes/RBAC such as (Azure AD / Identity Platform)[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent]
- See (FastAPI OAuth2 scops details)[https://fastapi.tiangolo.com/advanced/security/oauth2-scopes/]
- RBAC
- Use OpenAPI spec for frontend
- Axio for API handling
- Implement machine learning for logged in users