added semver
This commit is contained in:
parent
d71bb0e9d3
commit
a92da24945
29
readme.md
29
readme.md
|
@ -1,4 +1,4 @@
|
|||
# LearningPulse software documentation
|
||||
# LearningPulse software surface level documentation
|
||||
|
||||
## Contents
|
||||
|
||||
|
@ -30,6 +30,9 @@
|
|||
- [Frontend](#frontend)
|
||||
- [Staging](#staging)
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This documentation may change in the future.
|
||||
|
||||
# Abstract
|
||||
|
||||
_[go to top](#contents)_
|
||||
|
@ -156,7 +159,7 @@ Vertical scaling also allow for redundancy and 99.99% uptime as services can be
|
|||
|
||||
## Authentication
|
||||
|
||||
For authentication Keycloak will be used to minimize security holes. Each part of the program will be broken down into microservices that later can be deployed using Kubernetes.
|
||||
For authentication Keycloak will be used to minimize security holes.
|
||||
|
||||
## Data storage
|
||||
|
||||
|
@ -166,6 +169,19 @@ For storing data PostgreSQL will be used as it is one of the most performant dat
|
|||
|
||||
Kubernetes Load Balancer will be used to distribute load along the nodes.
|
||||
|
||||
# Versioning
|
||||
|
||||
[Sematic versioning](https://semver.org/) will be used to version the software as it is one of the most popular and humanly readable versioning system out there.
|
||||
|
||||
> :information_source: **Example**:
|
||||
> Once someone commits a new update that causes older API's/features to break the [`MAJOR`](https://devhints.io/semver) tag has to be changed accordingly.
|
||||
|
||||
```
|
||||
v1.2.43
|
||||
commit - d71bb0e9d3 - refactor api
|
||||
v2.0.0
|
||||
```
|
||||
|
||||
# Documentation
|
||||
|
||||
Documenting software is key to an open-source project like this. Each class, method and implementation will and have to be documented.
|
||||
|
@ -177,7 +193,7 @@ Javadoc will be used to generate the documentation for each class and their inhe
|
|||
For the API part, thankfully SpringBoot has a swagger documentation plugin that can auto-generate it on the go based on beans.
|
||||
|
||||
**Example**
|
||||
Here is a class that has requirements defined for its fields.
|
||||
Here is a class that has requirements defined for its fields.
|
||||
|
||||
```java
|
||||
@Entity
|
||||
|
@ -279,3 +295,10 @@ _[go to top](#contents)_
|
|||
In this section the documentation will explain how the application will be built over its lifetime. As this is a massive project, developers need to think thru their decisions on choosing the features and technologies which the application will be built upon. Since LearningPulse will employ many features it's only one way to get started. And that is to start with the bear minimum to get the foundation laying.
|
||||
|
||||
## Alpha
|
||||
|
||||
The alpha version of LearningPulse is basically the Minimum Viable Product.
|
||||
Only certain, let's call them core features will be implemented.
|
||||
These include the following:
|
||||
|
||||
- [Classroom](#classroom)
|
||||
- [Quiz](#quiz)
|
||||
|
|
Reference in a new issue