Author SHA1 Message Date
tsindt 12d5c96dcb lokale Docker Datenbank hinzugefüg 2026-09-25 11:15:57 +02:00
tsindt 0d2f5a1412 Merge pull request 'Html mockup' (#9) from HTMLMockup into main
Reviewed-on: #9
2026-09-25 07:10:27 +02:00
tsindt 8a0be322d2 Merge branch 'main' into HTMLMockup 2026-09-25 07:10:13 +02:00
tsindt 56064d672f Update README.md
Externe Libs dokumentiert
2026-09-22 09:47:49 +02:00
tsindt a631b31341 Update README.md 2026-09-21 09:18:08 +02:00
2 changed files with 97 additions and 0 deletions
+77
View File
@@ -49,3 +49,80 @@ Als Quelltext-Editor / IDE kommt VSCode zum Einsatz.
### DBeaver
Ist der Datenbank-Editor
## Technische Dokumentation
### 20.09.2026 Grundsätzliche technische Entscheidungen
#### Systeme:
- Programmiersprache : - GO
- Javascript
- SQL
- Datenbank: Postgresql
- Webtechnologie: HTMX
#### Grundlegende technische Entscheidungen
- Jedes relevante Objekt (z.B. Produkte) hat eine Darstellung als:
- Node (Raumdarstellung)
- Form (Darstellung des Objektes und Editiermöglichkeit) - List (Listen /Tabellensicht
- Alle Objekte werden in der API über ihre eindeutige ID angesprochen. Über die ID kann ich den Typ des Objektes herausfinden
- Objekte werden nur bei Bedarf aus der Datenbank geladen.
- Objekte werden nach dem Laden oder Anlegen gechached!
- Weboberflächen zur Pflege der Daten aber auch die Seiten zur Nutzung des CPQ müssen responsive sein!
- Nutzung des 12- Spalten loyouts!
- Alle Images haben einen Alternativen Text
- Struktur der Oberfläche und die Darstellung werden strikt getrennt (HTML + CSS)
- Die Entwicklung erfolgt über die Definition von Tickets
- Jedes Ticket verursacht ein Brauch und einen Merge!
### Open Source - Pakete
#### Go:
##### Viper
Viper dient zum Laden uns Auswerten von Config-Dateien. In diesem Case werden die HTTP-Servereinstellungen und die Datenbankverbindung ausgewertet.
````
go get github.com/spf13/viper
````
##### PostgreSQL
Die Datenbank des Systems ist in dem Datenbankmanagementsystem PostgreSQL abgelegt. Zum einen braucht es eine Installation des Systems, auf dem die Software Zugriff hat und zum anderen benötigt das System die entsprechenden PostgreSQL Treiber für Go.
````
go get github.com/lib/pq
````
##### Gin Gonic
Webserver Library zum Routing der API.
````
go get -u github.com/gin-gonic/gin
go get github.com/gin-contrib/cors
go get github.com/gin-contrib/sessions
````
##### Go Air
Go Air ist ein Live-Reload-Tool für Go-Anwendungen, das die Entwicklungsproduktivität erhöht.
````
go install github.com/air-verse/air@latest
export PATH="$PATH:$(go env GOPATH)/bin"
````
Den Export ggf. in der .bashrc oder .zshrc hinzufügen.
#### HTML Erweiterungen
ggf. später lokal runter laden ...
##### HTMX
HTMX ist eine JavaScript-Bibliothek, die es ermöglicht, HTML direkt über AJAX-Anfragen zu aktualisieren.
````
<script src="https://unpkg.com/htmx.org@1.9.2"></script>
````
+20
View File
@@ -0,0 +1,20 @@
# Use postgres/example user/password credentials
services:
db:
image: postgres
restart: always
# set shared memory limit when using docker compose
shm_size: 128mb
# or set shared memory limit when deploy via swarm stack
#volumes:
# - type: tmpfs
# target: /dev/shm
# tmpfs:
# size: 134217728 # 128*2^20 bytes = 128Mb
ports:
- 5432:5432
environment:
POSTGRES_USER: tsindt
POSTGRES_PASSWORD: XD14ko8d