This page contains a short summary of the project itself, aimed mostly for developers. See Wiki page of the project for more extensive resources, DEVELOPMENT.md for common development conventions, and CONFIGURATION.md for common configuration conventions.
Template for cloud-native applications and microservices running on Kubernetes, Docker Compose, serverless (FaaS), or virtual machine. The template can be used with both public cloud and on-premise private cloud. DevOps is the main focus of this template, and thus, you can freely change the implementation that is running inside the containers. The example implementation is based on React, Node.js, PostgreSQL, and S3 compatible storage, but you can choose the stack during project creation from multiple alternatives, or just write the implementation from scratch.
You can create a new project from this template by running taito project create full-stack-template
. Later you can upgrade your project to the latest version of the template by running taito project upgrade
. To ensure flawless upgrade, do not modify files that have a do-not-modify note in them as they are designed to be reusable and easily configurable for various needs. In such case, improve the original files of the template instead, and then upgrade. See Taito CLI for more information.
You can also migrate an existing project that does not currently use Taito CLI by running taito project migrate full-stack-template
in your project root folder.
You can use either monorepo or multirepo approach with this template. If you are going for multirepo, just create a separate project for each microservice based on this project template, and define common taito_namespace
in scripts/taito/project.sh if you want them to share the same namespace. You can also place environment descriptions in a separate repository (see CONFIGURATION.md).
Short description of the project: vision, purpose, company, etc.
Table of contents:
Note: some general project links are to be found on the Wiki page of the project.
Non-production basic auth credentials: USERNAME
/ PASSWORD
LINKS WILL BE GENERATED HERE
You can update this section by configuring links in
scripts/taito/project.sh
and runningtaito project generate
.
Some notes about testing and usage either here or in a separate document.
Try to keep all configurations in version control. However, if you have configured something manually, describe manually configured settings here.
TODO: Project-specific conventions. E.g.: Git commit message conventions, naming conventions, pull request conventions, etc.
We are using Taito version control conventions for commit messages.
Pull requests should be reviewed by at least one other developer before merging, ideally by the main developer. The developer who created the pull request should merge it once it has been approved.
Each pull request should come with:
- A description of the changes
- Photos or videos of the changes (if useful)
- A link to the issue it is related to (if any)
- A link to the design (if any)
- Documentation changes related to the changes (if any)
- Tests related to the changes (if any)
DIAGRAM: You can use Gravizo for making a architecture diagram if the diagram does not contain any confidential information. Note that architecture diagram is not mandatory if the architecture is very simple.
- Client uses Google Maps
- Server uses system X for authorization (OAUTH)
- Server fetches products from system Y (REST/json)
- Server sends email using Sendgrid (REST/json)
Only non-trivial processes need to be described here (e.g. scheduled batch processing), though it might be a good idea to describe one or two basic scenarios also. Architecture is the main focus here. User stories should be documented elsewhere (e.g. wiki).
- User performs action on UI
- Server authorizes action by system X
- Server reads/updates database
- Server returns value
- User performs action on UI
- Server adds message to queue
- ...
- ...
- Server sends email
- ...
- ...
Add security details either here or in a separate document. See the security appendix of the Taito CLI tutorial.