Tom Tröger fb1cb5d178
All checks were successful
Tests / Run Go Tests (push) Successful in 2m59s
Arbeitszeitmessung Deploy / Build Webserver (push) Successful in 3m5s
Merge branch 'main' into dev/main
2026-01-29 18:51:07 +01:00
2025-10-28 22:59:09 +01:00
2025-08-28 10:55:46 +02:00
2025-09-09 11:07:14 +02:00
2025-09-09 11:07:14 +02:00

Arbeitszeitmessung

Quality Gate Status

bis jetzt ein einfaches Backend mit PostgreSQL Datenbank und GO Webserver um Arbeitszeitbuchungen per HTTP PUT einzufügen

Installation

git clone https://git.letsstein.de/tom/arbeitszeitmessung arbeitszeitmessung

cd arbeitszeitmessung/Docker
# .env Datei anpassen
docker compose up -d

PREVIEW

Zeitverwaltungsansicht (/time):

time

Ansicht der Führungskraft (/team):

team

Nutzeransicht (/user):

user

Buchungstypen

1 - Kommen 2 - Gehen 3 - Kommen Manuell 4 - Gehen Manuell 254 - Automatisch abgemeldet

API

Nutzung der API wenn die dev-docker-compose.yml Datei gestartet wird, ist direkt ein SwaggerUI Server mit entsprechender Datei inbegriffen.

Buchungen [/time]

[GET] Anfrage

Parameter: cardID (string) Antwort: 200

[
  {
    "cradID": "test_card",
    "readerID": "test_reader",
    "bookingTyp": 2,
    "loggedTime": "2024-09-05T08:37:53.117641Z",
    "id": 5
  },
  {
    "cradID": "test_card",
    "readerID": "mytest",
    "bookingTyp": 1,
    "loggedTime": "2024-09-05T08:51:12.670827Z",
    "id": 6
  }
]

Antwort 500 Serverfehler

[PUT] Anfrage

Parameter: id (int) Body: (veränderte Parameter)

{
  "cradID": "test_card",
  "readerID": "mytest",
  "bookingTyp": 1,
  "loggedTime": "2024-09-05T08:51:12.670827Z"
}

Antwort 200

{
  "cradID": "test_card",
  "readerID": "mytest",
  "bookingTyp": 1,
  "loggedTime": "2024-09-05T08:51:12.670827Z",
  "id": 6
}

Neue Buchung [/time/new]

[PUT] Anfrage

Parameter:

  • cardID (string)
  • readerID (string)
  • bookingType (string)

Antwort 202 Akzeptiert und eingefügt

{
  "cradID": "test_card",
  "readerID": "mytest",
  "bookingTyp": 1,
  "loggedTime": "2024-09-05T08:51:12.670827Z",
  "id": 6
}

Antwort 409 Konflikt Die vorherige Buchung am selben Tag hat den gleichen Buchungstyp

Filestrukture

├── Backend (Webserver)
│   ├── doc (Templates for Document Creator --> typst used to create PDF Reports)
│   │   ├── static
│   │   └── templates
│   ├── endpoints (HTML Server endpoints (see main.go for Routes))
│   ├── helper (Helper classes)
│   │   ├── logs
│   │   └── paramParser
│   ├── logs (Log Folder, no sourcecode)
│   ├── migrations (DB Migrations Folder, no direct sourcecode)
│   ├── models (DB Models and their function)
│   ├── src (Tailwind src --> used to config css formatter)
│   ├── static (Webserver static, used to server static content, e.g. JS and CSS files)
│   │   └── css
│   └── templates (HTML Templates for every page written in templ and compiled to go)
├── Cron (all Cron Scripts)
├── DB (local Database mount Point)
│   └── initdb (initialization scripts for DB)
├── Docker (Docker Files, only docker-compose.yaml used)
├── docs
└── └── images
Description
No description provided
Readme GPL-3.0 3.1 MiB
Languages
Go 58.2%
CSS 17%
templ 14.3%
Shell 4.6%
PLpgSQL 2%
Other 3.9%