How severusjr/jtalks works
Purpose and Entry Points
TechMeet Scheduler is an internal weekly-session scheduling system with role-based administration and team self-service. Next.js App Router provides both UI and REST endpoints. Root routing begins at app/page.tsx; authentication screens are under app/(auth)/login/page.tsx; protected product navigation is organized under app/(dashboard)/layout.tsx and dashboard routes such as app/(dashboard)/dashboard/page.tsx.
UI Application Shell
The dashboard route group supplies the authenticated application frame, with shared navigation and responsive layout components in components/layout/DashboardLayout.tsx, components/layout/Sidebar.tsx, and components/layout/Header.tsx. Feature pages render calendar, application, session, reporting, team, settings, and admin workflows. Shared modal and presentation primitives in components/ui/Modal.tsx, components/ui/Card.tsx, and components/ui/ConfirmDialog.tsx support those workflows.
Identity, Authorization, and Route Boundary
Authentication is split between client-facing auth state and server/API enforcement: hooks/useAuth.tsx, lib/auth.ts, and lib/server-auth.ts. Catalyst-specific authentication integration is represented by lib/catalyst-auth.ts; login/password-reset UI and API endpoints are at app/(auth)/login/page.tsx, app/api/auth/me/route.ts, and app/api/auth/reset-password/route.ts. Admin-facing routes (app/(dashboard)/admin/page.tsx) are a critical role boundary from team-user workflows.
Scheduling and Session Lifecycle
Sessions are the central domain object: list/detail UI resides in app/(dashboard)/sessions/page.tsx and app/(dashboard)/sessions/[id]/page.tsx, while CRUD is exposed through app/api/sessions/route.ts and app/api/sessions/[id]/route.ts. Domain normalization and state derivation are concentrated in lib/materializeSession.ts, lib/sessionStatus.ts, and lib/sessionMeta.ts. Calendar/schedule management flows through app/(dashboard)/calendar/page.tsx and app/api/schedules/route.ts; the lifecycle moves availability into assignment, completion, or cancellation.
Applications and Administrative Assignment
Teams submit preferred-date/presenter requests through components/applications/ApplyForDayModal.tsx, backed by app/api/applications/route.ts and app/api/applications/[id]/route.ts. Client data ownership is encapsulated by contexts/ApplicationsContext.tsx and hooks/useApplications.ts. Administrators review applications, assign sessions, and manage teams using app/(dashboard)/admin/page.tsx, app/(dashboard)/admin/teams/page.tsx, and app/api/teams/route.ts.
Collaboration, Recordings, and Reporting
Session detail supports threaded comments and recording access. The API boundary is app/api/sessions/[id]/comments/route.ts, app/api/sessions/[id]/recording/route.ts, and app/api/sessions/[id]/recording/direct/route.ts; UI is in components/sessions/CommentsDrawer.tsx and components/sessions/RecordingPlayerModal.tsx. Recording URL construction/storage behavior is isolated in lib/recordingLink.ts and lib/recordings.ts. Aggregate reporting is served by app/api/reports/route.ts and displayed at app/(dashboard)/reports/page.tsx.
Persistence and Deployment Runtime
The primary production persistence model is Prisma/PostgreSQL, defined in prisma/schema.prisma and accessed through lib/prisma.ts; prisma/seed.ts supports initial data. The repository also includes Zoho Catalyst deployment/integration artifacts: catalyst.json, .catalystrc, lib/catalyst.ts, and server-appsail.js, with deployment/setup documentation in DEPLOY-CATALYST.md and CATALYST-DATASTORE-SETUP.md. Demo/mock data remains available in lib/mockData.ts, creating an explicit boundary between local/demo behavior and database-backed production behavior.
Main entry points: layout.tsx Protected dashboard · schema.prisma PostgreSQL via Prisma · route.ts Applications API · page.tsx Admin & teams
Components 22
Next.js UI
App Router pages and shared client workflows.
- Root entry
app/page.tsx - Login & reset UI
app/(auth)/login/page.tsx - Protected dashboard · Authenticated navigation and responsive layout.
app/(dashboard)/layout.tsx - Dashboard layout components
components/layout/DashboardLayout.tsx - Sessions UI · List and detail views for the session lifecycle.
app/(dashboard)/sessions/page.tsx - Calendar UI
app/(dashboard)/calendar/page.tsx - Application submission
components/applications/ApplyForDayModal.tsx - Admin & teams · Role-restricted assignment and team management.
app/(dashboard)/admin/page.tsx - Comments & recordings
components/sessions/CommentsDrawer.tsx - Reports UI
app/(dashboard)/reports/page.tsx
API & domain
Server route handlers and scheduling logic.
- Authentication boundary · Client state and server/API authorization enforcement.
lib/auth.ts - Auth endpoints
app/api/auth/me/route.ts - Sessions API · Session CRUD endpoints.
app/api/sessions/route.ts - Session lifecycle logic · Normalizes sessions and derives lifecycle state.
lib/materializeSession.ts - Schedules API · Availability and schedule management.
app/api/schedules/route.ts - Applications API
app/api/applications/route.ts - Teams API
app/api/teams/route.ts - Comments & recordings API · Session collaboration and recording access.
app/api/sessions/[id]/comments/route.ts - Reports API
app/api/reports/route.ts
Data & runtime
Production persistence and deployment integrations.
- PostgreSQL via Prisma · Prisma schema and database client.
prisma/schema.prisma - Zoho Catalyst runtime · Catalyst authentication and deployment environment.
lib/catalyst.ts - Demo/mock data · Explicit non-production data boundary.
lib/mockData.ts
Connections 27
- Root entry → Login & reset UI
- Login & reset UI → Auth endpoints: sign in / reset
- Auth endpoints → Authentication boundary: enforces
- Authentication boundary → Protected dashboard: protects
- Protected dashboard → Dashboard layout components: renders
- Protected dashboard → Sessions UI
- Protected dashboard → Calendar UI
- Protected dashboard → Admin & teams: admin role
- Protected dashboard → Reports UI
- Sessions UI → Sessions API: CRUD
- Calendar UI → Schedules API: manage availability
- Application submission → Applications API: submit requests
- Admin & teams → Applications API: review / assign
- Admin & teams → Teams API: manage teams
- Comments & recordings → Comments & recordings API: comments / recordings
- Reports UI → Reports API: aggregate data
- Applications API → Sessions API: assignment creates sessions
- Schedules API → Session lifecycle logic: availability state
- Sessions API → Session lifecycle logic: normalize / derive status
- Session lifecycle logic → PostgreSQL via Prisma: persisted sessions
- Applications API → PostgreSQL via Prisma
- Teams API → PostgreSQL via Prisma
- Comments & recordings API → PostgreSQL via Prisma
- Reports API → PostgreSQL via Prisma
- Authentication boundary → Zoho Catalyst runtime: Catalyst auth integration
- Zoho Catalyst runtime → PostgreSQL via Prisma: deployment integration
- Demo/mock data → PostgreSQL via Prisma: local/demo alternative