How pererohit/create-your-pizza works
CreateYourPizza provides two independent services: auth-service manages administrator and trusted-system identities, credentials, JWTs, and JWKS; catalog-service manages products and options, serves filtered catalog reads, and generates public versioned PDF menus. The main trusted-system flow is registration, administrator approval, credential exchange for a JWT, then catalog reads; administrators also log in and maintain catalog data. The README documents the service boundary, Redis responsibilities, and JWKS verification. Some wiring is inferred only where documented; unsampled service details are not expanded.
Main entry points: PdfGenerationService.java PDF generation · CatalogQueryService.java Catalog queries · CatalogWriteService.java Catalog writes · AuthController.java Auth endpoints
Components 27
Identity and access
- Auth endpoints
auth-service/src/main/java/com/createyourpizza/auth/web/AuthController.java - Identity workflows
auth-service/src/main/java/com/createyourpizza/auth/service/AuthService.java - JWT issuer
auth-service/src/main/java/com/createyourpizza/auth/jwt/JwtIssuer.java - Signing keys
auth-service/src/main/java/com/createyourpizza/auth/jwt/SigningKeyService.java - JWKS endpoint
auth-service/src/main/java/com/createyourpizza/auth/web/JwksController.java
Catalog APIs
- Catalog queries
catalog-service/src/main/java/com/createyourpizza/catalog/service/CatalogQueryService.java - Catalog writes
catalog-service/src/main/java/com/createyourpizza/catalog/service/CatalogWriteService.java - Product query API
catalog-service/src/main/java/com/createyourpizza/catalog/web/ProductQueryController.java - Option query API
catalog-service/src/main/java/com/createyourpizza/catalog/web/OptionQueryController.java - Product write API
catalog-service/src/main/java/com/createyourpizza/catalog/web/ProductWriteController.java - Option write API
catalog-service/src/main/java/com/createyourpizza/catalog/web/OptionWriteController.java - JWT verification
catalog-service/src/main/java/com/createyourpizza/catalog/config/CachingRemoteJwkSource.java
Public menu PDF
- PDF scheduler
catalog-service/src/main/java/com/createyourpizza/catalog/service/PdfGenerationScheduler.java - PDF generation
catalog-service/src/main/java/com/createyourpizza/catalog/service/PdfGenerationService.java - PDF renderer
catalog-service/src/main/java/com/createyourpizza/catalog/pdf/MenuPdfRenderer.java - Menu PDF API
catalog-service/src/main/java/com/createyourpizza/catalog/web/MenuPdfController.java - Menu PDF lookup
catalog-service/src/main/java/com/createyourpizza/catalog/service/MenuPdfQueryService.java
Persistence and coordination
- Auth repositories
auth-service/src/main/java/com/createyourpizza/auth/repository - Auth database
- Catalog database
- Catalog cache
catalog-service/src/main/java/com/createyourpizza/catalog/cache - Redis service
- Latest menu store
catalog-service/src/main/java/com/createyourpizza/catalog/menu/LatestMenuStore.java - Catalog locks
catalog-service/src/main/java/com/createyourpizza/catalog/lock/CatalogLockStore.java
Other components
- Administrator
- Trusted system
- Public visitor
Connections 34
- Administrator → Auth endpoints: logs in
- Trusted system → Auth endpoints: registers / exchanges
- Administrator → Auth endpoints: administers users
- Auth endpoints → Identity workflows: dispatches
- Identity workflows → Auth repositories: reads / writes
- Auth repositories → Auth database: persists
- Identity workflows → JWT issuer: issues tokens
- JWT issuer → Signing keys: signs with
- JWKS endpoint → Signing keys: reads public key
- JWKS endpoint → Trusted system: publishes keys
- Administrator → Product write API: maintains catalog
- Administrator → Option write API: maintains options
- Trusted system → JWT verification: presents JWT
- JWT verification → JWKS endpoint: fetches JWKS
- Product query API → Catalog queries: dispatches
- Option query API → Catalog queries: dispatches
- Catalog queries → Catalog database: queries catalog
- Catalog queries → Catalog cache: reads / writes
- Product write API → Catalog writes: dispatches
- Option write API → Catalog writes: dispatches
- Catalog writes → Catalog database: mutates catalog
- Catalog writes → Catalog locks: acquires / releases
- Catalog cache → Redis service: stores cache entries
- Catalog locks → Redis service: stores locks
- PDF scheduler → PDF generation: triggers generation
- PDF generation → Catalog database: reads catalog; saves PDF
- PDF generation → PDF renderer: renders model
- PDF generation → Latest menu store: updates latest menu
- PDF generation → Catalog locks: coordinates generation
- Public visitor → Menu PDF API: requests menu
- Menu PDF API → Menu PDF lookup: dispatches
- Menu PDF lookup → Latest menu store: checks latest PDF
- Menu PDF lookup → Catalog database: reads historical PDF
- Latest menu store → Redis service: stores latest PDF