How ek1gra/preppilot works
PrepPilot is an AI interview-preparation application. A user signs in, submits a job description, company URL, and interview timeline, then receives a researched kit with requirements, categorized questions, flashcards, and a schedule. The UI supports saving, editing, practice, and schedule viewing; the API handles authentication, kit ownership, generation, validation, and persistence. The README documents public interview research and state-preserving regeneration, but their implementation details are only partly sampled, so those links are documented rather than inferred from unseen code.
Main entry points: kits.ts Kit routes · orchestrator.ts Kit orchestrator · page.tsx Prep UI · server.ts Express server
Components 25
Frontend experience
- Prep UI
frontend/src/app/page.tsx - Kit editor
frontend/src/components/Builder.tsx - Practice mode
frontend/src/components/PracticeMode.tsx - Schedule view
frontend/src/components/ScheduleView.tsx - Kit types
frontend/src/types/kit.ts
API and identity
- Express server
backend/src/server.ts - Auth routes
backend/src/routes/auth.ts - Kit routes
backend/src/routes/kits.ts - Session auth
backend/src/middleware/auth.ts - User records
backend/src/models/user.ts
Research and generation
- Kit orchestrator
backend/src/pipeline/orchestrator.ts - Company research
backend/src/crawler/scraper.ts - Role extraction
backend/src/pipeline/extractor.ts - Question generation
backend/src/pipeline/generator.ts - Coverage pass
backend/src/pipeline/coverage.ts
Kit lifecycle
- Kit records
backend/src/models/kit.ts - Schedule allocator
backend/src/scheduler/scheduler.ts - Kit validation
backend/src/types/schema.ts - Kit contract
backend/src/types/kit.ts
External services
- LLM client
backend/src/config/llm.ts - MongoDB
- Gemini
Other components
- Candidate
- Company sites
- Public interview research
Connections 38
- Candidate → Prep UI: uses
README.md - Prep UI → Express server: calls API
README.md - Express server → Auth routes: mounts
backend/src/server.ts - Express server → Kit routes: mounts
backend/src/server.ts - Prep UI → Kit editor: renders
frontend/src/app/page.tsx - Prep UI → Practice mode: renders
frontend/src/app/page.tsx - Prep UI → Schedule view: renders
frontend/src/app/page.tsx - Kit editor → Kit types: uses
frontend/src/components/Builder.tsx - Practice mode → Kit types: uses
frontend/src/components/PracticeMode.tsx - Schedule view → Kit types: uses
frontend/src/components/ScheduleView.tsx - Auth routes → Session auth: checks session
backend/src/routes/auth.ts - Auth routes → User records: reads and writes
backend/src/routes/auth.ts - Kit routes → Session auth: requires session
backend/src/routes/kits.ts - Kit routes → Kit records: reads and writes
backend/src/routes/kits.ts - Kit routes → Kit orchestrator: generates kit
backend/src/routes/kits.ts - Kit orchestrator → Company research: crawls company
backend/src/pipeline/orchestrator.ts - Company research → Company sites: fetches pages
backend/src/crawler/scraper.ts - Company research → Public interview research: searches discussions
backend/src/crawler/scraper.ts - Kit orchestrator → Role extraction: extracts role
backend/src/pipeline/orchestrator.ts - Kit orchestrator → Role extraction: synthesizes brief
backend/src/pipeline/orchestrator.ts - Kit orchestrator → Question generation: generates questions
backend/src/pipeline/orchestrator.ts - Kit orchestrator → Coverage pass: checks coverage
backend/src/pipeline/orchestrator.ts - Kit orchestrator → Coverage pass: requests second pass
backend/src/pipeline/orchestrator.ts - Kit orchestrator → Question generation: generates flashcards
backend/src/pipeline/orchestrator.ts - Kit orchestrator → Schedule allocator: builds schedule
backend/src/pipeline/orchestrator.ts - Kit orchestrator → Kit validation: validates kit
backend/src/pipeline/orchestrator.ts - Role extraction → LLM client: requests generation
backend/src/pipeline/extractor.ts - Question generation → LLM client: requests generation
backend/src/pipeline/generator.ts - Coverage pass → LLM client: requests second pass
backend/src/pipeline/coverage.ts - LLM client → Gemini: generates content
backend/src/config/llm.ts - Kit routes → Schedule allocator: rebuilds schedule
backend/src/routes/kits.ts - Kit routes → Kit validation: validates updates
backend/src/routes/kits.ts - Kit routes → Role extraction: regenerates brief
backend/src/routes/kits.ts - Kit routes → Company research: refreshes research
backend/src/routes/kits.ts - Kit routes → Question generation: regenerates category
backend/src/routes/kits.ts - Kit routes → Coverage pass: checks regenerated kit
backend/src/routes/kits.ts - Express server → MongoDB: connects
backend/src/server.ts - Prep UI → Kit records: saves kits via API
README.md