TODO - this portion is incomplete
Each feature will likely require the following:
- A schema definition in
models.py
- Schema and endpoint definitions in
openapi.yaml
- Controller class inherited from
BasicCRUD
with initialization in controllers.init - Permissions defined in
rbac.yaml
- Unit / functional tests
- Docstrings and potentially updates to the user doc
Some features may need additional settings added to config.py
or background processing in messaging.py
, the media service or a new microservice worker.
If you're working with a team, host your git repository on GitHub, GitLab or an internal git server. If you're using GitHub, add a Pull Request template to the repo as .github/PULL_REQUEST_TEMPLATE.md (this repo has an example) and make a checklist for your team members to use as they confirm one another's work. Make a separate branch for each feature or bugfix, and follow the Git Flow model (or rival approaches such as this suggestion from a GitLab user). Once a Pull Request (known as a Merge Request in the GitLab community) is finalized, the branch is merged to master, then deleted and the release engineering steps can proceed.
For hosting an open-source application, you'll want to set up these accounts; many other services are available for closed-source / commercial applications. Each of these services has a no-cost tier of indefinite duration except for those marked with a $ symbol.
Purpose | Vendor options |
---|---|
Code repo | GitHub, GitLab |
CDN | Cloudflare, $ AWS Cloudfront |
CI/CD | Gitlab-CI, many alternatives |
DNS | Cloudflare, $ UltraDNS, $ EasyDNS, several others |
Docs | Read the Docs |
Geocoding | Mapquest |
Javascript repo | npmjs |
Maps | Mapbox |
Outbound mail | GMail, many alternatives |
Python repo | PyPI |
Registry | Docker Hub |
Storage | $ AWS S3, $ Backblaze B2 |