How sambit-d-swain07/ppsu-ems works
This is a university event-management portal with student discovery and registration, organizer event management and analytics, and administrator oversight. The main user flow is role-based sign-in, followed by role-specific pages; students browse events and manage registrations, while organizers create and monitor events and administrators review events and manage venues and users. Source excerpts and the index establish several connections, but many action and feature implementations are unsampled, so their internal links are omitted rather than inferred.
Main entry points: prisma.ts Prisma client · admin/page.tsx Admin dashboard · auth.ts Authentication actions · organizer/page.tsx Organizer dashboard
Components 23
Identity and access
- Sign-in page
src/app/login/page.tsx - Authentication actions
src/actions/auth.ts - Credentials and sessions
src/auth.ts
Student experience
- Event discovery
src/app/student/events/page.tsx - Event details
src/app/student/events/[id]/page.tsx - My registrations
src/app/student/registrations/page.tsx - Registration controls
src/components/registration-button.tsx
Event operations
- Organizer dashboard
src/app/organizer/page.tsx - Organizer event table
src/components/organizer-events-table.tsx - Event actions
src/actions/events.ts - Attendance tools
src/components/attendance-scanner.tsx
Administration and reporting
- Admin dashboard
src/app/admin/page.tsx - Event approvals
src/components/pending-approvals-table.tsx - Venue management
src/components/venues-manager.tsx - User management
src/app/admin/users/page.tsx
Shared services
- Analytics calculations
src/lib/analytics.ts - Certificate endpoint
src/app/api/certificates/[registrationId]/route.ts - Reminder job endpoint
src/app/api/cron/reminders/route.ts - Email delivery
src/lib/mail.ts - Input validation
src/lib/schemas.ts - Prisma client
src/lib/prisma.ts
Other components
- Portal user
- Application database
Connections 28
- Portal user → Sign-in page: opens
src/app/login/page.tsx - Sign-in page → Authentication actions: submits credentials
src/app/login/page.tsx - Authentication actions → Credentials and sessions: signs in
src/actions/auth.ts - Credentials and sessions → Prisma client: looks up users
src/auth.ts - Authentication actions → Prisma client: updates passwords
src/actions/auth.ts - Authentication actions → Input validation: validates input
src/actions/auth.ts - Event discovery → Prisma client: reads events
src/app/student/events/page.tsx - Event discovery → Event details: opens event
- Event details → Prisma client: reads event
src/app/student/events/[id]/page.tsx - Event details → Registration controls: renders control
src/app/student/events/[id]/page.tsx - My registrations → Prisma client: reads registrations
src/app/student/registrations/page.tsx - Organizer dashboard → Prisma client: reads event data
src/app/organizer/page.tsx - Organizer dashboard → Analytics calculations: computes metrics
src/app/organizer/page.tsx - Organizer dashboard → Organizer event table: renders events
src/app/organizer/page.tsx - Admin dashboard → Prisma client: reads admin data
src/app/admin/page.tsx - Admin dashboard → Analytics calculations: computes metrics
src/app/admin/page.tsx - Admin dashboard → Event approvals: renders approvals
src/app/admin/page.tsx - Admin dashboard → Venue management: renders venues
src/app/admin/page.tsx - Venue management → Prisma client: requests venue changes
src/components/venues-manager.tsx - Venue management → Input validation: validates venue input
src/components/venues-manager.tsx - User management → Prisma client: reads user data
- Certificate endpoint → Prisma client: loads registration
src/app/api/certificates/[registrationId]/route.ts - Certificate endpoint → Credentials and sessions: checks session
src/app/api/certificates/[registrationId]/route.ts - Reminder job endpoint → Prisma client: loads reminders
src/app/api/cron/reminders/route.ts - Reminder job endpoint → Email delivery: sends reminders
src/app/api/cron/reminders/route.ts - Event actions → Prisma client: persists event changes
src/actions/events.ts - Event actions → Input validation: validates event input
src/actions/events.ts - Prisma client → Application database: queries