kaobuddy-pwa  by jin-zi-xuan

AI study tool for intensive exam prep

Created 1 month ago
282 stars

Top 92.2% on SourcePulse

GitHubView on GitHub
Project Summary

KaoBuddy is an AI-powered exam preparation workbench designed for users facing imminent exams with disorganized study materials. It addresses the need for rapid knowledge consolidation by transforming scattered resources like PDFs, notes, and video subtitles into structured learning modules, personalized study plans, and practice assessments. The target audience includes students and professionals needing to quickly get up to speed for exams, offering a significant benefit by streamlining the learning process and maximizing efficiency under tight deadlines.

How It Works

KaoBuddy leverages AI to dissect imported study materials into granular, testable knowledge points, categorizing them by difficulty and importance. It then generates adaptive daily study plans based on remaining time and user availability. The core approach emphasizes client-side processing, with all data—including uploaded files and API keys—stored locally in the browser's IndexedDB and localStorage. This ensures user privacy and avoids server-side accounts or data storage. Users can connect via a Bring-Your-Own-Key (BYOK) model, sending requests directly to their chosen AI service provider, or utilize an invite-code beta for limited server-proxied access.

Quick Start & Requirements

  • Windows: Download the portable KaoBuddy-Windows.zip from GitHub Releases, extract, and run start-kaobuddy.bat. Access via http://127.0.0.1:8000.
  • macOS/Linux (Source): Requires Python 3 and Node.js LTS. Execute open-kaobuddy.command (macOS) or open-kaobuddy.bat (Windows source).
  • Developer: Requires Python 3, Node.js LTS. Install dependencies with npm install, then run npm run dev.
  • Prerequisites: Python 3, Node.js LTS.
  • Links: GitHub Releases (for downloads), DEPLOY.md (for cloud deployment guides).

Highlighted Details

  • AI Model Flexibility: Supports DeepSeek, Kimi, OpenAI, and any OpenAI-compatible AI endpoints.
  • Data Privacy: All user data resides client-side; API keys are stored locally in localStorage.
  • Broad Format Ingestion: Accepts PDFs, DOCX, RTF, TXT, Markdown, images (for handwriting recognition), and Bilibili video subtitles.
  • AI-Generated Content: Creates knowledge point breakdowns, personalized study schedules, customizable mock exams (with PDF export), targeted practice questions, and rapid-review flashcards.
  • PWA Capabilities: Functions as a Progressive Web App, enabling offline use and home screen installation via Service Worker and Web Manifest.

Maintenance & Community

The project utilizes GitHub Actions for CI/CD, with comprehensive automated testing for both backend (21 tests) and frontend (36 tests) components. Specific community channels (e.g., Discord, Slack) or detailed contributor information beyond the repository owner are not explicitly mentioned in the README.

Licensing & Compatibility

The project is released under the MIT License, which is highly permissive and allows for commercial use and integration into closed-source projects without significant restrictions.

Limitations & Caveats

The macOS standalone package is not recommended due to Apple's Gatekeeper security measures blocking unsigned applications. AI grading for mock exams is noted as immature. The tool is specifically designed as an exam preparation utility and does not offer general note-taking features like mind mapping or spaced repetition. OCR quality for scanned PDFs is dependent on the source material and the chosen AI model. Bilibili video integration is limited to fetching public information and subtitles. Older .doc files may require conversion to DOCX or PDF for reliable parsing. Cloud deployment requires users to provide their own accounts and quotas for services like Railway.

Health Check
Last Commit

2 weeks ago

Responsiveness

Inactive

Pull Requests (30d)
12
Issues (30d)
14
Star History
171 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.