How sakina1303/nnomm-claims works
Nnomm is a PostgreSQL-backed flash-deal and claim API. Customers and restaurant admins authenticate to browse deals, create deals, and reserve limited stock; claims are idempotent and expire, while authenticated payment events update claim state. A periodic sweep also expires overdue claims. The excerpts place these responsibilities together in Main.kt, so the graph separates them by role but reuses that exact path. Route details beyond the sampled handlers and the migration wiring rely on README documentation.
Main entry points: Main.kt HTTP routes · V1__init.sql Database schema
Components 14
API and identity
- HTTP routes
src/main/kotlin/com/nnomm/Main.kt - JWT authentication
src/main/kotlin/com/nnomm/Main.kt - Request validation
src/main/kotlin/com/nnomm/Main.kt
Deals and claims
- Deal operations
src/main/kotlin/com/nnomm/Main.kt - Claim operations
src/main/kotlin/com/nnomm/Main.kt - Idempotency records
src/main/kotlin/com/nnomm/Main.kt
Payment and expiry
- Payment webhook
src/main/kotlin/com/nnomm/Main.kt - Expiry sweep
src/main/kotlin/com/nnomm/Main.kt
Persistence
- Connection pool
src/main/kotlin/com/nnomm/Main.kt - Database schema
src/main/resources/db/migration/V1__init.sql - PostgreSQL
Other components
- Customer
- Restaurant admin
- Payment provider
Connections 17
- Customer → HTTP routes: calls API
README.md - Restaurant admin → HTTP routes: calls API
README.md - Payment provider → Payment webhook: sends events
README.md - HTTP routes → JWT authentication: authenticates
src/main/kotlin/com/nnomm/Main.kt - HTTP routes → Request validation: parses requests
src/main/kotlin/com/nnomm/Main.kt - HTTP routes → Deal operations: routes deal calls
src/main/kotlin/com/nnomm/Main.kt - HTTP routes → Claim operations: routes claims
src/main/kotlin/com/nnomm/Main.kt - HTTP routes → Payment webhook: routes events
README.md - Deal operations → Connection pool: runs transactions
src/main/kotlin/com/nnomm/Main.kt - Claim operations → Idempotency records: records responses
src/main/kotlin/com/nnomm/Main.kt - Claim operations → Connection pool: locks and updates
src/main/kotlin/com/nnomm/Main.kt - Payment webhook → Connection pool: updates claim state
src/main/kotlin/com/nnomm/Main.kt - Expiry sweep → Claim operations: expires claims
README.md - Expiry sweep → Connection pool: sweeps reservations
README.md - Connection pool → PostgreSQL: reads and writes
src/main/kotlin/com/nnomm/Main.kt - Database schema → PostgreSQL: defines tables
README.md - HTTP routes → Database schema: runs migration
README.md