How voss-labs/vprep works
vprep is a student resource-library foundation: its shipped landing page presents papers, notes, syllabus and resources, while browsing, uploads and moderation routes are explicitly future work. The current runtime includes institute-email OTP authentication, session-aware landing/navigation, and database, mail and object-storage helpers. The graph separates implemented wiring from documented future content workflows; unsampled implementations are represented only at the existing app directory level.
Main entry points: page.tsx Landing page · auth.ts OTP authentication · index.ts Database access · session.ts Session helpers
Components 20
Web experience
- Landing page
app/page.tsx - Site navigation
components/editorial-nav.tsx
Identity and sessions
- Session helpers
lib/session.ts - Auth API route
app/api/auth/[...all]/route.ts - OTP authentication
lib/auth.ts - Auth client
lib/auth-client.ts
Data and integrations
- Database access
db/index.ts - Auth and content schema
db/schema.ts - OTP mail helper
lib/mail.ts - PDF object storage
lib/r2.ts
Resource library
- Past papers
app - Notes
app - Syllabus
app - Curated resources
app - Upload and review
app
Other components
- Student
- Moderator
- Neon Postgres
- Resend
- Cloudflare R2
Connections 20
- Student → Landing page: opens
- Landing page → Session helpers: gets session
- Site navigation → Session helpers: gets session
- Landing page → Past papers: links to
- Landing page → Notes: links to
- Landing page → Syllabus: links to
- Landing page → Curated resources: links to
- Student → Auth API route: requests OTP auth
- Auth API route → OTP authentication: dispatches
- Auth client → Auth API route: calls auth API
- Session helpers → OTP authentication: gets session
- OTP authentication → Database access: uses adapter
- OTP authentication → OTP mail helper: sends OTP
- Database access → Neon Postgres: queries
- Database access → Auth and content schema: configures
- OTP mail helper → Resend: sends email
- Student → Upload and review: planned upload
- Moderator → Upload and review: planned review
- PDF object storage → Cloudflare R2: stores files
- Upload and review → PDF object storage: planned file storage