Files
gatekeeper/plan.txt
ahtlon cbc2526c14 Squashed commit of the following:
commit a6a5de4a35
Author: ahtlon <git@ahtlon.de>
Date:   Fri May 15 20:47:45 2026 +0200

    Auth working :)

commit 6ad50df3c2
Author: ahtlon <git@ahtlon.de>
Date:   Fri May 8 13:17:32 2026 +0200

    Implement auth
    I basically copied this article https://fastapi.tiangolo.com/tutorial/security/oauth2-jwt

commit 6243618abb
Author: ahtlon <git@ahtlon.de>
Date:   Fri May 8 12:18:56 2026 +0200

    Add auth deps
2026-05-15 22:01:57 +02:00

58 lines
1.7 KiB
Plaintext

Plan:
Hardware:
Raspberry Pi 3/4
Smartcard reader + Mifare DESFire
Nuki Smart Lock Go
ESP32 + Nuki hub
Models
User (Interacts with api)
ID int
Name str
Email str
Password str (hashed)
IsAdmin bool
Group (Interacts with physical access system)
ID int
Name str
Cards List[Card]
Accessauths List[AccessAuthorization]
Card
ID int
UUID str
GroupID int
AccessAuthorization
Name str
IsActive bool
Timeslots list[Timeslot]
Timeslot
Name str
WeekDay int
Starttime str(HH:MM)
Duration int (min)
Door
Name str
IsLocked bool
IsClosed bool
API Specification
- See http://127.0.0.1:8000/openapi.json or swagger ui
Workflow:
Erstelle gruppe
Erstelle AA mit Timeslot
Registriere karte -> gruppe
CRUD
create(post)
read(get)[all items]
read(get)[single item]
update(put/patch)
delete(delete)
zeitplan
Hier bin ich nicht sicher, ich denke an cron style für wiederholende dinge aber das kann nur zeitpunkte und keine blöcke.
Villeicht ne liste von cron zeiten [ "0 16 * * 2" "0 18 * * 2" ](Wäre dienstag 16-18 uhr) - Ist aber warscheinlich schwer zu parsen
Oder startzeit + länge in minuten [ "0 16 "* * 2" "120" ]
Ganz simpel ["wochentag(1-7)" "Startzeit" "Endzeit"]
Was ist mit "aller 2 wochen" oder "3. Sonntag im monat"