added semver

This commit is contained in:
2005 2024-05-16 18:32:01 +02:00
parent d71bb0e9d3
commit a92da24945

View file

@ -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)