Compare commits

...

3 Commits

Author SHA1 Message Date
Marek Lenczewski
87f584b1fa update 2026-04-20 08:15:42 +02:00
Marek
47cfc67ef4 update 2026-04-19 19:23:16 +02:00
Marek
65157da61d update 2026-04-19 19:22:36 +02:00
38 changed files with 67 additions and 53 deletions

View File

@@ -1,4 +1,9 @@
- auth
- login user
- register user
- chnage password
-
-
- registration, login, refresh, logout, password change, own profile
- routes: POST /register, /login, /refresh, /logout, /change-password; GET/PUT /me
- events emit: user.registered, user.logged_in

View File

@@ -1,3 +1,3 @@
- __init__.py (router, on_load)
- __init__.py:
- models.py (User, RefreshToken)
- manifest.yaml

View File

@@ -1,6 +1,4 @@
- core-apps
- shipped with the system, required for a functional shop
- same mechanics as any other app (manifest.yaml, router, migrations, events, DI) — no special status in the loader
- typically declared `required: true` in manifest so they cannot be switched off
- distinct from custom-apps (optional / third-party, not shipped)
- cover: auth, product catalog, cart, checkout, payment, orders, mail, shipment (planned), plus the AI layer (ai_core, ai_shop, ai_admin)
- auth
- manage users
- login user
- register user

View File

@@ -1,11 +1,6 @@
- auth
- catalog
- cart
- checkout
- payment
- orders
- mail
- ai_core
- ai_shop
- ai_admin
- shipment (planned, not implemented)
- hashing: argon2
- token: JWT (15m/30d)
- events
- user.registered
- user.logged_id

View File

@@ -1,5 +1,4 @@
- cache
- shared read-store / cache client (Redis today)
- backend writes, frontend reads
- apps keep the cache in sync via event handlers (projectors), not the core client
- room for growth: CacheProvider abstraction so the read-store becomes swappable
- client für redis
- kopie der datenbank
- anfragen gehen wenn möglich immer an redis, nie an datenbank
- änderungen in datenbank ändern auch immer redis

View File

@@ -1 +1,3 @@
- cache.py
- redis_client.py
- verbindung zu redis
- CRUD für redis

View File

@@ -1,2 +1 @@
- config
- read .env into Settings object
- liest die env

View File

@@ -1 +1 @@
- config.py
- config.py - sicherheitskritische daten einlesen

View File

@@ -1,4 +1,3 @@
- db
- base setup for ORM
- use SQLAlchemy
- provide get_db() dependency
- verbindung zur datenbank herstellen
- session aufbauen
- Base definieren

View File

@@ -1 +1,3 @@
- db.py
- verwendet SQLAlchemy
- ORM

View File

@@ -1,3 +1,2 @@
- di
- global register for services
- no direct service import between apps
- services registrieren
- services abrufen

View File

@@ -1,5 +0,0 @@
- events
- apps can react on events
- apps can emit events
- events persist in db (audit/replay)
- allow wildcard subscribe (e.g. product.*)

View File

@@ -1 +0,0 @@
- events.py

1
doc/core/features.md Normal file
View File

@@ -0,0 +1 @@
- setup für den shop

View File

@@ -1,6 +1,3 @@
- loader
- load apps as python module
- discover apps/*/manifest.yaml
- order by app dependency (topological sort), circles not allowed
- check for conflicts
- mount each app router under /api/<app>
- apps finden
- reihenfolge nach abhängigkeit anpassen
- apps laden

View File

@@ -1,5 +1,3 @@
- main
- entrypoint for backend
- build fastAPI
- run loader on lifespan startup
- expose /health and core settings routes
- einstiegspunkt
- fastAPI bauen
- loader aufrufen

View File

@@ -1 +1 @@
- main.py
- event.py

7
doc/core/specs.md Normal file
View File

@@ -0,0 +1,7 @@
- main — anwendung starten
- loader — apps laden
- config — liest zugänge aus env
- di — direkte apps kommunikation
- events — indirekte apps kommunikation
- db — datenbank kommunikation
- cache — redis kommunikation

View File

@@ -0,0 +1,3 @@
- custom events aus den apps sammeln
- events persistieren
- helper methoden für events

View File

@@ -0,0 +1 @@
- event.py

2
doc/systems/features.md Normal file
View File

@@ -0,0 +1,2 @@
- basis für apps
- sammelt logik der apps und führt sie aus

11
doc/systems/specs.md Normal file
View File

@@ -0,0 +1,11 @@
- controller - routes und aktionen
- model - datenbank tabellen
- migration — migrationen
- event - eigene events
- subscriber - listener
- setting — shop konfigurationen
- authentication — zugriff
- authorization — rechte
- middleware — request und response filter
- seed — faker daten
- i18n — übersetzungen

View File

@@ -0,0 +1 @@
- subscriber registrieren

View File

@@ -0,0 +1 @@
- subscriber.py