# Entwickler-Dokumentation
Ein Großteil der Dokumentation ist in Englisch.
# Technischer Hintergrund
# Verwendete Technologien
# Backend
Das Backend ist eine Node.js Anwendung, die mit Fastify (opens new window) gebaut wird. Als Datenbank wird MongoDB (opens new window) verwendet.
- Node.js (opens new window)
- Fastify (opens new window)
- MongoDB (opens new window)
- Mongoose (opens new window)
- Websockets (opens new window)
- JSON Web Tokens (opens new window)
# Testing
# Frontend (Webanwendung)
Das Frontend ist eine TypeScript Vue.js 3 Anwendung mit Tailwind als CSS Framework, die mit Vite (opens new window) gebaut wird.
- Vue.js (opens new window)
- Pinia (opens new window)
- Vuetify (opens new window)
- Vue Router (opens new window)
- Axios (opens new window)
- date-fns (opens new window)
- Websockets (opens new window)
- JSON Web Tokens (opens new window)
- Tailwind CSS (opens new window)
- Vue Tailwind (opens new window)
- Vue Apexcharts (opens new window)
- SortableJS (opens new window)
- FullCalendar (opens new window)
- Vue FullCalendar (opens new window)
- Vuelidate (opens new window)
- Vue3 Googlemaps (opens new window)
- Vue3 Hotkeys (opens new window)
- Ckeditor 5 (opens new window)
- Vue Ckeditor 5 (opens new window)
# Testing
# Frontend (Desktop-Anwendung)
Die Desktop Anwendung ist die Webanwendung, die mit Electron (opens new window) in eine Desktop-Anwendung verpackt wurde. Mit einigen zusätzlichen Features, wie z.B. die Möglichkeit, die Anwendung im Vollbildmodus zu starten oder Dateien zu öffnen. Auch die Möglichkeit, die Anwendung als Hintergrundprozess zu starten, ist vorhanden.
# Dokumentation
# Continuous Integration
Die Anwendungen werden mit CircleCI (opens new window) getestet und deployed. Es gibt einen Staging Installation für API und (Web-)Anwendung die automatisch nach erfolgreichen Tests deployed wird. Production wird deployed bei neuen git tags (Neue Version). Die Dokumentation wird bei jedem Commit neu deployed.
- CircleCI (opens new window)
- Kubernetes (opens new window)
- Helm (opens new window)
- Docker (opens new window)
- Docker Compose (opens new window)
# Verwendete Tools
- Neovim (opens new window)
- Visual Studio Code (opens new window)
- WebStorm (opens new window)
- MongoDB Compass (opens new window)
- Postman (opens new window)
# Setup
# Voraussetzungen
- Linux Host(s) (z.b. Arch Linux, Ubuntu, Debian, ...)
- Docker (opens new window)
- Docker Compose (opens new window)
- Git (opens new window)
- Node.js (opens new window)
# Installation (Entwicklung)
Die Installation ist für die Entwicklung und Testing gedacht. Für Production gibt es Helm Charts (opens new window) und Docker Images (opens new window).
# Installation (Produktiv)
Wird per circleci job automatisch deployed.