jin-zi-xuan/kaobuddy-pwa
一个帮你临时抱佛脚的项目
📚 KaoBuddy – AI‑powered exam‑prep workspace (PWA)
What it is
- A web‑app you run locally (or deploy yourself) that helps you cram for an upcoming exam when you only have a few days left. You drop all your study material—PDFs, DOCX, scanned handwritten notes, B‑site video subtitles, etc.—and the built‑in AI extracts the key concepts, creates study cards, generates practice questions, builds mock exams and even a “last‑minute flash‑card” mode.
Why it exists
- Most study tools assume you have weeks or months to organise a knowledge base. KaoBuddy assumes the opposite: you’re days away from the test and need a fast way to turn a chaotic pile of files into a structured, learnable plan.
Core features
| Feature | What it does |
|---|---|
| AI‑driven knowledge extraction | Parses uploaded PDFs, DOCX, RTF, plain‑text, images of handwritten notes and B‑site video subtitles. The AI identifies exam‑relevant knowledge points (e.g., “deadlock”, “banker’s algorithm”), assigns difficulty/importance, and records the source sentence. |
| Daily study planner | Generates a day‑by‑day schedule based on exam date, available study time, target score and identified weak points. Unfinished items roll forward automatically. |
| Interactive learning modules | For each knowledge point you can view a beginner‑friendly explanation, generate 3+ practice questions, or create 4‑6 flash‑cards of different types (concept, mistake, exam, quick‑memory). |
| Mock exam builder | Customisable length and question types. AI creates the paper from your own material, grades automatically (multiple‑choice, short answer) and can also answer the paper itself for you to compare. |
| Last‑minute flash‑card mode | Condenses knowledge points into concise cards with core concept, mnemonic, typical exam angle and common pitfalls – ideal for the final day. |
| Error‑book | Wrong answers from mock exams are stored, tagged by severity and can be revisited later. |
| Offline‑first data storage | All user data (projects, files, plans, cards, exam results) lives in the browser’s IndexedDB; a JSON backup/restore lets you move between devices. API keys are kept in localStorage and never shipped in backups. |
| No account / no cloud sync | Privacy‑first: you keep all material locally unless you choose to self‑host the backend. |
AI integration
- Supports any OpenAI‑compatible service. Pre‑configured presets include DeepSeek, Kimi (CN/Intl) and OpenAI GPT‑5.5/mini. You provide your own API key (BYOK) or, if you have an invite code, use a hosted quota.
- Two request modes: text‑only (for models without vision) and vision‑enabled (for scanned PDFs or handwritten images). The backend forwards the key and the relevant content to the model; it does not persist keys.
How to get started
- Windows – download the zip from the Releases page, unzip and run
start‑kaobuddy.bat. It launches a local server (http://127.0.0.1:8000). - macOS – run the
open‑kaobuddy.commandscript (requires Python 3 + Node LTS). No signed binary is provided yet. - From source (any OS) – install Python 3 and Node, then:
npm install npm run dev # starts FastAPI backend (8000) and Vite dev server (5173) - Deploy yourself – Dockerfile, Fly.io, Railway and a
DEPLOY.mdguide are included. The container runs the FastAPI backend and serves the built React app.
Tech stack
- Frontend: React 19 + TypeScript, Vite 6, Framer‑Motion, Phosphor icons, Service Worker + Web Manifest (PWA). PDF handling via
pdfjs-dist, export viajspdf/html2canvas. - Backend: FastAPI + Uvicorn (async, SSE streaming),
httpxfor OpenAI‑compatible calls. - Data: Browser IndexedDB +
localStoragefor keys. - Packaging: Multi‑stage Docker (node → python), GitHub Actions CI (type‑checking, pytest, frontend tests, build verification).
- License: MIT.
Who it’s for
- Students facing an imminent exam who have scattered digital/scan resources and need rapid AI‑assisted organisation.
- Developers who want a ready‑made PWA example of AI‑augmented document processing, planning and flash‑card generation.
All details above are taken directly from the repository’s README; no additional features have been inferred.
Related
- Project
- Project
- Project
- Project