How surendar-s290707/mic-event works
MIC Event is a database-backed campus event registration and check-in app. Attendees create accounts, browse events, register for a seat, and show a QR ticket; organizers create events, scan tickets at the door, and review attendance and export event data. The README describes dashboard refresh and CSV export. It explicitly says offline sync, AI insights, and Socket.IO live updates are not built yet, so those are not represented as working capabilities. Route and API wiring is supported by the sampled files; unsampled feature internals are represented only at their existing paths.
Main entry points: App.tsx Role-based screens · api.ts API client · app.ts HTTP API app · prisma.ts Application records
Components 24
Web app
- Role-based screens
client/src/App.tsx - Session UI state
client/src/store/SessionProvider.tsx - API client
client/src/lib/api.ts - Event browsing
client/src/routes/attendee/AttendeeEvents.tsx - Registration and ticket
client/src/routes/attendee/Ticket.tsx - Event management
client/src/routes/organizer/NewEvent.tsx - QR scanner
client/src/routes/organizer/ScanPage.tsx - Dashboard and export
client/src/routes/organizer/EventDashboard.tsx
API
- HTTP API app
server/src/app.ts - Account endpoints
server/src/routes/auth.ts - Event endpoints
server/src/routes/events.ts - Registration endpoints
server/src/routes/registrations.ts - Session and role guards
server/src/middleware/auth.ts
Event operations
- Check-in decisions
server/src/lib/checkin.ts - Attendance insights
server/src/lib/insights.ts - CSV export
server/src/lib/csv.ts - QR ticket rendering
client/src/components/Qr.tsx
Identity and data
- Password and sessions
server/src/lib/auth.ts - Application records
server/src/lib/prisma.ts - Realtime support
server/src/lib/realtime.ts
Other components
- Attendee
- Organizer
- Web browser
- PostgreSQL
Connections 35
- Attendee → Role-based screens: uses
- Organizer → Role-based screens: uses
- Role-based screens → Session UI state: renders
- Session UI state → API client: requests session
- Web browser → HTTP API app: sends API requests
- API client → HTTP API app: calls
- Role-based screens → Event browsing: routes to
- Role-based screens → Registration and ticket: routes to
- Role-based screens → Event management: routes to
- Role-based screens → QR scanner: routes to
- Role-based screens → Dashboard and export: routes to
- Event browsing → API client: loads events
- Registration and ticket → API client: registers
- Registration and ticket → QR ticket rendering: renders ticket
- Event management → API client: manages events
- QR scanner → API client: submits scans
- Dashboard and export → API client: loads dashboard
- HTTP API app → Account endpoints: dispatches
- HTTP API app → Event endpoints: dispatches
- HTTP API app → Registration endpoints: dispatches
- Account endpoints → Session and role guards: guards session check
- Event endpoints → Session and role guards: guards access
- Registration endpoints → Session and role guards: guards access
- Account endpoints → Password and sessions: hashes and issues sessions
- Account endpoints → Application records: reads and writes users
- Session and role guards → Password and sessions: verifies cookie
- Session and role guards → Application records: loads user
- Event endpoints → Application records: reads and writes events
- Registration endpoints → Application records: reads and writes registrations
- Registration endpoints → Check-in decisions: checks tickets in
- Check-in decisions → Application records: records check-in
- Dashboard and export → Attendance insights: displays attendance data
- Dashboard and export → CSV export: downloads export
- Application records → PostgreSQL: persists records
- Realtime support → HTTP API app: attaches to HTTP server