How se-itmo-labs/nosql-sem5-lab1 works
This is a cinema-themed customer account application whose main workflow creates notifications and retrieves them by ID or customer. The Spring backend stores notification JSON, per-customer sorted-set indexes, and an ID sequence in Redis. Separate features provide temporary resource blocks, Redisson distributed locks, and a category-cache abstraction; the category cache’s miss source is explicitly not implemented. The Nuxt frontend and its API composable are shown as product components, but their request wiring was not sampled, so no frontend-to-backend calls are asserted.
Main entry points: CategoryService.java Category service · NotificationService.java Notification service · BlockService.java Temporary block service · DistributedLockService.java Distributed lock service
Components 18
Nuxt frontend
- Account pages
nosql-sem5-lab1-frontend/app/pages - API composable
nosql-sem5-lab1-frontend/app/composables/useApi.ts - Demo auth
nosql-sem5-lab1-frontend/app/composables/useAuth.ts
Spring API
- Notification API
src/main/java/org/seitmolabs/controller/NotificationController.java - Temporary block API
src/main/java/org/seitmolabs/controller/BlockController.java - Lock test API
src/main/java/org/seitmolabs/controller/LockController.java - Hello cache API
src/main/java/org/seitmolabs/HelloController.java
Domain services
- Notification service
src/main/java/org/seitmolabs/service/NotificationService.java - Category service
src/main/java/org/seitmolabs/service/CategoryService.java - Temporary block service
src/main/java/org/seitmolabs/service/BlockService.java - Distributed lock service
src/main/java/org/seitmolabs/service/DistributedLockService.java
Redis storage
- Notification repository
src/main/java/org/seitmolabs/repository/NotificationRepository.java - Category cache
src/main/java/org/seitmolabs/repository/CategoryCacheRepository.java - Block repository
src/main/java/org/seitmolabs/repository/BlockRepository.java
Other components
- Customer
- Redis
- Redisson client
- Category source
Connections 14
- Customer → Account pages: uses
- Notification API → Notification service: delegates
- Notification service → Notification repository: creates and reads
- Notification repository → Redis: stores and queries
- Temporary block API → Temporary block service: delegates
- Temporary block service → Block repository: attempts save
- Block repository → Redis: stores with TTL
- Lock test API → Distributed lock service: executes under lock
- Distributed lock service → Redisson client: acquires and releases
- Redisson client → Redis: uses
- Category service → Category cache: reads and writes
- Category cache → Redis: caches categories
- Category service → Category source: loads on miss
- Hello cache API → Redis: reads and caches