Product Architecture

How CampusPulse runs your campus

A layered platform combining a fast attendee app, an operator console, real-time queue and food engines, and a rules layer that orchestrates everything on event day.

System overview
Client surfaces
  • Attendee web/app — events, passes, food
  • Organizer console — events, ops, reports
  • Volunteer scanner — pass + queue ops
  • Admin dashboard — multi-college
Platform services
  • Auth & roles (SSO + magic link)
  • Events, Registrations, Passes
  • Queue engine & Food engine
  • Notifications & realtime channels
Foundations
  • Postgres + Redis (state + cache)
  • Object storage for media
  • Event bus (Kafka) for streams
  • Mapbox for venue navigation
Registration → Pass → Check-in flow
Browse & register
Attendee picks event, pays if needed.
Pass engine
Issues unique QR + emails it instantly.
Gate scan
Volunteer scans, system validates.
Realtime ack
Attendee + organizer notified.
Audit log
Immutable scan history per event.
Queue engine
Token issuance
FIFO per (event, station) with priority lanes
Throughput
Adaptive serve rate using rolling 60s window
ETA
Median wait + variance, exposed to attendees
Failover
Idle volunteer reassignment when queue length > threshold
Food engine
Order intake
Throttled by station capacity
Stages
queued → preparing → ready → served
Pickup
QR-based handoff matched to order ID
Stock
Live SKU availability with auto hide-out
Rules engine — example pipeline
# on event.scan.received
match scan.event.status in ["published","live"] → allow
match pass.checked_in == false → set checked_in = true
else → reject("already_used")
# on queue.length > 25
notify role:volunteer in station → redistribute
open additional lane if available → prioritize VIP
# on food.order.ready
push channel: attendee.id, type: "pickup_now"
increment metric: station.served
Deployment topology
Edge CDN
Static + image
API gateway
Rate limit + auth
Service mesh
6 microservices
Data plane
PG + Redis + S3
Reliability & SLOs
Uptime
99.99%
Rolling 30d
Scan latency
< 250ms
P95
Queue update
< 2s
end-to-end