{"id":31644505,"url":"https://github.com/edocedoc/personal-study-ai","last_synced_at":"2026-04-11T03:07:04.067Z","repository":{"id":318317552,"uuid":"1070765981","full_name":"EdocEdoc/personal-study-AI","owner":"EdocEdoc","description":"AI Student Learning Tool  A self-hosted, privacy-first AI study companion that transforms your learning materials into interactive quizzes and flashcards.","archived":false,"fork":false,"pushed_at":"2025-10-06T12:44:54.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-06T14:32:48.724Z","etag":null,"topics":["fastapi","hactoberfest","hactoberfest2025","ollama","reactjs","vite"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EdocEdoc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-06T12:11:38.000Z","updated_at":"2025-10-06T12:44:57.000Z","dependencies_parsed_at":"2025-10-06T14:32:54.236Z","dependency_job_id":"3356456a-e9a6-4cfb-8978-8976929a686e","html_url":"https://github.com/EdocEdoc/personal-study-AI","commit_stats":null,"previous_names":["edocedoc/personal-study-ai"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/EdocEdoc/personal-study-AI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdocEdoc%2Fpersonal-study-AI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdocEdoc%2Fpersonal-study-AI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdocEdoc%2Fpersonal-study-AI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdocEdoc%2Fpersonal-study-AI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EdocEdoc","download_url":"https://codeload.github.com/EdocEdoc/personal-study-AI/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdocEdoc%2Fpersonal-study-AI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278722768,"owners_count":26034461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","hactoberfest","hactoberfest2025","ollama","reactjs","vite"],"created_at":"2025-10-07T04:53:32.848Z","updated_at":"2025-12-30T21:16:05.163Z","avatar_url":"https://github.com/EdocEdoc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Student Learning Tool\n\nA self-hosted, privacy-first AI study companion that transforms your learning materials into interactive quizzes and flashcards.\n\n# 🚀 Bacground\n\nAI Student Learning Tool is an open-source, locally powered study assistant designed for students, teachers, and lifelong learners.\nBy combining FastAPI, React, and Ollama’s on-device AI, it enables users to upload documents (PDF, TXT, DOCX) and instantly transform them into structured lessons, summaries, and AI-generated quizzes — all processed locally without relying on external APIs.\n\nThis tool empowers learners to study smarter with full control over their data, customizable AI prompts, and the ability to host and run everything on their own machine.\n\n## ⚙️ Key Features\n\n- 🧩 Document Sectionization — Automatically breaks long texts into logical modules and topics.\n- 🗒️ AI Summarization — Generates concise summaries and flashcards for quick reviews.\n- 🎯 Quiz Generation — Creates multiple-choice questions based on the uploaded content.\n- 💾 Local-First Storage — Uses SQLite for self-hosted setups or Supabase for cloud-based sync.\n- 🔒 Self-Hosting Ready — Full privacy and control; no data leaves your system.\n- 🤖 Powered by Ollama — Integrates local AI models like Llama 3, Phi 3, or Mistral 7B for offline intelligence.\n\n## Overview\n\n- Backend: FastAPI (Python) — located in `backend/main.py` (document parsing, basic auth, SQLite storage)\n- Frontend: React + Vite — located in `web-app/` (development server via Vite, production build served with Nginx in Dockerfile)\n- Database: SQLite file at `backend/study_tool.db` (created/used by the backend)\n- AI / LLM: Ollama can be integrated locally; the backend assumes an external LLM service for advanced features.\n\n## Repo layout (high level)\n\n- `backend/` — FastAPI app and local SQLite DB\n- `web-app/` — React + Vite frontend\n- `docker-compose.yml` — development compose file (frontend + backend)\n- `Dockerfile`, `Dockerfile.dev` in each service for container builds\n\n## How to Contribute\n\n1. Fork the repository\n\n- Create your own copy of the project on GitHub\n\n2. Find an issue or create one\n\n- Check the repository's issues tab for tasks to work on\n\n3. Create a pull request\n\n- Submit your changes for review\n\n4. Get it merged\n   Once approved, your contribution will be part of the project!\n\n## Quick start — Local (recommended for development)\n\nWindows (PowerShell) — backend\n\n```powershell\ncd backend\npython -m venv .venv\n.\\.venv\\Scripts\\Activate.ps1\n# If a requirements.txt exists: pip install -r requirements.txt\n# Otherwise install minimal deps:\npip install fastapi uvicorn PyPDF2 python-docx python-multipart\nuvicorn main:app --reload --host 0.0.0.0 --port 8000\n```\n\nFrontend (PowerShell)\n\n```powershell\ncd web-app\n# Use npm or yarn depending on your preference\nnpm install\nnpm run dev\n# or: yarn install \u0026\u0026 yarn dev\n```\n\nBackend health \u0026 docs should be available at http://localhost:8000 and OpenAPI at http://localhost:8000/docs (when running with uvicorn as above).\n\n## Quick start — Docker (development)\n\nThe repository includes a `docker-compose.yml` to bring up both frontend and backend in development mode. From the project root run:\n\n```powershell\ndocker-compose up --build\n```\n\nUseful scripts (from `package.json`):\n\n```powershell\nnpm run docker:dev   # runs `docker-compose up --build`\nnpm run docker:down  # runs `docker-compose down`\nnpm run docker:logs  # runs `docker-compose logs -f`\n```\n\nServices \u0026 ports (as configured in `docker-compose.yml`):\n\n- `frontend` (container name `study-web`) — Vite dev server mapped to host port 5173 (development). In production Dockerfile it is built and served by Nginx on port 80.\n- `backend` (container name `study-backend`) — mapped to host port 5000 in compose\n\nNote: when using the local uvicorn run (not Docker), the backend in this repo listens on port 8000 by default (see `backend/main.py`). The compose file maps `backend:5000:5000` — verify which server you want inside the container.\n\n## Database\n\nThe app uses a local SQLite file at `backend/study_tool.db`. The `backend/main.py` file contains an `init_db()` routine that will create necessary tables automatically when the app starts.\n\n## AI/LLM integration\n\nThis project references Ollama for local LLM usage. Make sure your Ollama daemon or chosen LLM endpoint is running and that the backend is configured to connect to it if you plan to use AI features.\n\n## Notes \u0026 TODOs\n\n- The backend implementation is a Python FastAPI app (see `backend/main.py`). However, there are Dockerfiles in `backend/` that currently use Node images — if you plan to run the Python backend inside Docker, update the backend Dockerfile to use a Python base image and install the Python dependencies.\n- Add a `requirements.txt` (or a proper Dockerfile for Python) to make the backend Docker build reproducible.\n- Add tests and CI for both frontend and backend.\n\n## License\n\nMIT\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedocedoc%2Fpersonal-study-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedocedoc%2Fpersonal-study-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedocedoc%2Fpersonal-study-ai/lists"}