Your Project’s Lifecycle¶
TODO - this portion is incomplete
Iterating on features¶
Each feature will likely require the following:
A schema definition in
Schema and endpoint definitions in
Controller class inherited from
BasicCRUDwith initialization in controllers.init
Permissions defined in
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.
Choosing your online vendors¶
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.
|Code repo||GitHub, GitLab|
|CDN||Cloudflare, $ AWS Cloudfront|
|CI/CD||Gitlab-CI, many alternatives|
|DNS||Cloudflare, $ UltraDNS, $ EasyDNS, several others|
|Docs||Read the Docs|
|Outbound mail||GMail, many alternatives|
|Storage||$ AWS S3, $ Backblaze B2|