added server and frontend section

also added a issue template for future template
This commit is contained in:
2005 2024-05-15 16:25:30 +02:00
parent 643424bddb
commit 367f20b23f
2 changed files with 59 additions and 2 deletions

36
.gitea/issue_template.yml Normal file
View file

@ -0,0 +1,36 @@
name: Feature request
about: File a feature request to be embedded into the documentation
title: "[FEATURE]: "
body:
- type: textarea
id: feature-description
attributes:
label: What feature would you like to add?
description: Describe carefully what you want to add to the documentation.
placeholder: It'd be great if the frontend had....
validations:
required: true
- type: dropdown
id: area
attributes:
label: What part of the software does this affect?
options:
- Frontend theme
- Frontend quality of life
- Frontend functionality
- Backend
- Authentication
- Phone client
- Desktop client
- Backend quality of life
- Technologies
validations:
required: true
- type: checkboxes
id: not-bloat
attributes:
label: Are you sure this will route us to a brighter future?
options:
- label: Yes I think this will have an impact for the better
required: true

View file

@ -15,6 +15,12 @@
- [Complex select](#complex-select)
- [Pair match](#pair-match)
- [Ordering](#ordering)
- [Frontend](#frontend)
- [Themes](#themes)
- [Server](#server)
- [Backend](#backend)
- [Authentication](#authentication)
- [Data storage](#data-storage)
# Abstract
@ -119,14 +125,29 @@ The frontend will allow users to select from a curated list of themes so they ca
- [Windows 95](https://github.com/themesberg/windows-95-ui-kit)
- [Neumorphism (default)](https://alexbsoft.github.io/win95.css/)
- [Material]()
- [Material (Bootstrap)](https://getbootstrap.com/)
# Server
The server will be written in Java more precisely SpringBoot. It will be broken down to microservices for easy _vertical_ scaling. 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.
## Backend
The server will be written in Java more precisely SpringBoot. It will be broken down to microservices for easy _vertical_ scaling.
Vertical scaling also allow for redundancy and 99.99% uptime as services can be updated one by one, or updates can be pushed accordingly so that inactive nodes will get the release version and get prioritized. Then older nodes will eventually die off and get updated.
## 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.
## Data storage
For storing data PostgreSQL will be used as it is one of the most performant databses out there. For object storage S3 [garage](https://garagehq.deuxfleurs.fr/) will be used as it is geo-located and really easy to deploy.
## Load balancing
Kubernetes Load Balancer will be used to distribute load along the nodes.
# Staging
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