Turn your exam materials into a study website.
Upload slides, PDFs, notes, past exams, or oral exam questions. ExamPrep Web turns them into a clickable study system with topic maps, past-question analysis, oral practice, source references, and a study plan.
No page building. No document chaos. Just a clearer path from "I have too much to study" to "I know what the exam is likely to test."
Next.js TypeScript Local First License
Exam materials → structured study system → clickable review website → oral exam practice
Lecture slides in one folder. PDFs in another. Notes, question banks, rubrics, and past papers scattered everywhere.
ExamPrep Web turns those files into one structured review website, organized around what matters for the exam instead of the original order of the documents.
See the likely themes. Find the high-priority topics. Understand what past questions are really testing. Practice saying a strong answer out loud.
| From messy materials | To exam-ready practice |
|---|---|
| Build a study dashboard from uploaded course files | Generate oral questions for every major topic |
| Extract text from TXT, PDF, DOCX, and PPTX | Give mock feedback on spoken-style answers |
| Create topic maps based on exam relevance | Explain past questions by what they test |
| Link every topic back to source chunks | Create a study plan automatically |
| Rank likely exam themes and repeated questions | Run locally without a cloud account or API key |
See the full Upload screen below. Explore the topic map
Exam-focused topic cards
Topic detail with exam relevance Practice oral answers and get feedback
Oral practice answer feedback
Upload TXT, PDF, DOCX, or PPTX materials
ExamPrep Web is useful for:
- Oral exams where knowing the answer is not enough; you need to explain it clearly
- Final exams with too many lectures and no obvious review order
- Open-book exams where finding the right concept quickly matters
- Closed-book exams that demand confident recall
- Presentation-based exams with follow-up questions
- Courses with hundreds of slides and repeated themes
- Students with past papers but no clear study structure
- Create an exam project with the course, exam type, date, and goal.
- Upload your materials or paste text manually.
- Generate your study website with one click.
- Review topics and past questions organized by exam relevance.
- Practice oral answers and get structured feedback.
- Follow the study plan until exam day.
- Node.js 20.16+ or a current Node.js LTS release
- npm
git clone https://github.com/YOUR_USERNAME/examprep-web.git
cd examprep-web
npm install
npm run devThen open:
http://localhost:3000
No API key is required for the current MVP.
- Start the app.
- Create a new project.
- Upload
examples/demo-marketing-exam.txt. - Click Generate Study Website.
- Explore Overview, Topics, Past Questions, Oral Practice, and Study Plan.
| File type | Status |
|---|---|
| TXT | Supported |
| Supported for text-based PDFs | |
| DOCX | Supported |
| PPTX | Supported |
| Scanned PDFs | Not yet supported, OCR planned |
ExamPrep Web is an early open-source MVP with the complete local study flow working: uploading, file parsing, text chunking, local persistence, study website generation, oral practice, and study-plan tracking.
AI generation is currently mocked, so anyone can clone the project and experience the full product without configuring an API key. Real AI integration is planned, and the AI service layer is already separated for an easy upgrade.
- Real OpenAI API integration
- OCR for scanned PDFs
- Better oral exam scoring and follow-up questions
- Exportable study websites
- Shareable study links
- Multi-language support
- Spaced repetition
- Better topic ranking and question clustering
- Hosted version
- The MVP runs locally and stores project data in
data/examprep.json. - Do not commit real uploads or copyrighted course materials.
- Do not commit API keys or
.envfiles. - Keep local environment files private.
- Use only materials you have permission to process.
ExamPrep Web uses Next.js App Router, TypeScript, Tailwind CSS, Server Actions, and a small local JSON database.
The product flow stays intentionally simple:
Uploaded file
→ plain text parser
→ source-labeled chunks
→ study generation services
→ fixed review website
File parsers live in lib/parsers. Every parser returns the same
ParsedFile shape, so TXT, PDF, DOCX, and PPTX all enter the same chunking pipeline.
Mock AI services live in lib/ai. To connect a real model, keep the existing
typed function signatures and replace the internal mock logic with server-side API
calls. The main orchestration entry point is
lib/ai/generateStudySystem.ts.
npm run lint npm run build
ExamPrep Web is licensed under AGPL-3.0-or-later.
If this project makes exam prep feel less chaotic, consider starring it and helping shape the roadmap.