{"id":47403027,"url":"https://github.com/CaviraOSS/PageLM","last_synced_at":"2026-04-03T18:00:55.823Z","repository":{"id":312721926,"uuid":"1047965761","full_name":"CaviraOSS/PageLM","owner":"CaviraOSS","description":"PageLM is a community driven version of NotebookLM \u0026 a education platform that transforms study materials into interactive resources like quizzes, flashcards, notes, and podcasts.","archived":false,"fork":false,"pushed_at":"2026-03-27T04:56:04.000Z","size":30976,"stargazers_count":1527,"open_issues_count":10,"forks_count":208,"subscribers_count":18,"default_branch":"main","last_synced_at":"2026-03-27T17:05:06.127Z","etag":null,"topics":["ai","docker","edtech","education","flashcards","javascript","langchain","nodejs","notebooklm","notes","oss","pagelm","podcast","quizzes","rag","react","study-tools","tailwindcss","typescript","vite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CaviraOSS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":"GOVERNANCE.md","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-08-31T16:17:31.000Z","updated_at":"2026-03-27T09:16:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"575846f9-a1fd-44d0-b18e-56d4b4770158","html_url":"https://github.com/CaviraOSS/PageLM","commit_stats":null,"previous_names":["caviraoss/neuropilot","caviraoss/pagelm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CaviraOSS/PageLM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaviraOSS%2FPageLM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaviraOSS%2FPageLM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaviraOSS%2FPageLM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaviraOSS%2FPageLM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CaviraOSS","download_url":"https://codeload.github.com/CaviraOSS/PageLM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CaviraOSS%2FPageLM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31368156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai","docker","edtech","education","flashcards","javascript","langchain","nodejs","notebooklm","notes","oss","pagelm","podcast","quizzes","rag","react","study-tools","tailwindcss","typescript","vite"],"created_at":"2026-03-20T14:00:37.289Z","updated_at":"2026-04-03T18:00:55.788Z","avatar_url":"https://github.com/CaviraOSS.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \n\u003cimg width=\"full\" height=\"auto\" alt=\"pagelm\" src=\"https://github.com/user-attachments/assets/d3133be1-1931-4132-9301-3596ebb21122\" /\u003e\n\n# PageLM\n\n**An open source AI powered education platform that transforms study materials into interactive learning experiences, slightly inspired by NotebookLM**\n\n[Report Bug](https://github.com/caviraOSS/pagelm/issues) • [Request Feature](https://github.com/caviraOSS/pagelm/issues) • [Discord server](https://discord.gg/P7HaRayqTh)\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-PageLM%20Community%20License-blueviolet.svg\" alt=\"License: PageLM Community License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://nodejs.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen.svg\" alt=\"Node.js Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://reactjs.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/React-18+-blue.svg\" alt=\"React\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.typescriptlang.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/TypeScript-5.0+-blue.svg\" alt=\"TypeScript\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/P7HaRayqTh\"\u003e\u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/1379682804849180844?label=Discord%20server\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n# **🔥 Spread the Word!**\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/intent/tweet?text=🤯%20Found%20the%20open%2Dsource%20NotebookLM%20killer%3A%20PageLM%21%20It%20turns%20PDFs%20into%20quizzes%2C%20flashcards%2C%20and%20podcasts.%20Stop%20paying%20for%20study%20tools%21\u0026url=https%3A%2F%2Fgithub.com%2FCaviraOSS%2FPageLM\u0026hashtags=ai,opensource,education,llm\"\u003e\u003cimg src=\"https://img.shields.io/badge/Share%20on%20X-000000?style=for-the-badge\u0026logo=x\u0026logoColor=white\" alt=\"Share on X\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://www.linkedin.com/shareArticle?url=https%3A%2F%2Fgithub.com%2FCaviraOSS%2FPageLM\u0026title=PageLM%3A%20The%20Open%2DSource%20NotebookLM%20Alternative%20for%20Students\u0026summary=PageLM%20is%20an%20AI%20platform%20that%20transforms%20lecture%20notes%20and%20PDFs%20into%20interactive%20quizzes%20and%20AI%20podcasts.%20A%20great%20example%20of%20full%2Dstack%20AI%20development%20%28Node%2FReact%2FLangChain%29.\"\u003e\u003cimg src=\"https://img.shields.io/badge/Share%20on%20LinkedIn-0A66C2?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\" alt=\"Share on LinkedIn\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://reddit.com/submit?url=https%3A%2F%2Fgithub.com%2FCaviraOSS%2FPageLM\u0026title=PageLM%3A%20Open%20Source%20AI%20Notebook%20that%20creates%20Quizzes%2C%20Flashcards%2C%20and%20Podcasts\"\u003e\u003cimg src=\"https://img.shields.io/badge/Share%20on%20Reddit-FF4500?style=for-the-badge\u0026logo=reddit\u0026logoColor=white\" alt=\"Share on Reddit\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fgithub.com%2FCaviraOSS%2FPageLM\u0026t=Show%20HN%3A%20PageLM%20%E2%80%93%20Open%20Source%20NotebookLM%20Alternative%20(React%2FNode%2FLangChain)\"\u003e\u003cimg src=\"https://img.shields.io/badge/Hacker%20News-FF6600?style=for-the-badge\u0026logo=y-combinator\u0026logoColor=white\" alt=\"Submit to Hacker News\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://dev.to/new/share?url=https%3A%2F%2Fgithub.com%2FCaviraOSS%2FPageLM\u0026title=PageLM%3A%20An%20Open%20Source%20AI%20Education%20Platform%20for%20Quizzes%20and%20Podcasts\u0026prefill=I%20came%20across%20PageLM%20and%20was%20impressed%20by%20its%20architecture%20(Node.js%2FReact%2FLangChain).%20It's%20a%20full%2Dstack%20AI%20platform%20that%20supports%20Ollama%20and%20generates%20structured%20learning%20tools%20like%20ExamLab%20and%20AI%20Podcasts.%20Check%20it%20out%20and%20star%20the%20repo!%0D%0A%0D%0A**Link%20to%20Repo:**%20https%3A%2F%2Fgithub.com%2FCaviraOSS%2FPageLM\"\u003e\u003cimg src=\"https://img.shields.io/badge/Share%20on%20DEV%20Community-0A0A0A?style=for-the-badge\u0026logo=dev.to\u0026logoColor=white\" alt=\"Share on DEV Community\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n## Demo\n\n\u003cimg src=\".github/pagelm.png\" alt=\"PageLM Demo\"/\u003e\n\nhttps://github.com/user-attachments/assets/98fae4ef-c2b7-4ad2-bfe9-1e0665eb4d71\n\n\u003cvideo width=\"100%\" controls\u003e\n  \u003csource src=\".github/demo.mp4\" type=\"video/mp4\"\u003e\n  Your browser does not support the video tag.\n\u003c/video\u003e\n\n\u003e **Note**: If the video doesn't load above, you can [download the demo video directly](.github/demo.mp4)\n\n---\n\n## 🚀 Features\n\nPageLM converts study material into **interactive resources** including quizzes, flashcards, structured notes, and podcasts.  \nThe platform provides a modern interface for students, educators, and researchers to **enhance learning efficiency** using state-of-the-art LLMs and TTS systems.\n\n### Learning Tools\n\n- **Contextual Chat** – Ask questions about uploaded documents (PDF, DOCX, Markdown, TXT)\n- **SmartNotes** – Generate Cornell-style notes automatically from topics or uploaded content\n- **Flashcards** – Extract non-overlapping flashcards for spaced repetition\n- **Quizzes** – Create interactive quizzes with hints, explanations, and scoring\n- **AI Podcast** – Convert notes and topics into engaging audio content for learning on the go\n- **Voice Transcribe** - Convert lecture recordings and voice notes into organized, searchable study materials instantly.\n- **Homework Planner** - Plans your Homework Smartly using AI, Assists if your stuck.\n- **ExamLab** - Simulate any exam, get feedback, and be prepared for the exam\n- **Debate** - Debate with AI to improve your Debate skills.\n- **Study Companion** - A personalised AI Companion that assists you.\n\n### Supported AI Models\n\n- Google Gemini • OpenAI GPT • Anthropic Claude • xAI Grok • [MiniMax](https://www.minimax.io/) • Ollama (local) • OpenRouter\n\n### Embedding Providers\n\n- OpenAI • Gemini • Ollama\n\n### Technical Highlights\n\n- WebSocket streaming for real-time chat, notes, and podcast generation\n- JSON or vector database support for embeddings and retrieval\n- File-based persistent storage for generated content\n- Markdown-based outputs for structured answers and notes\n- Configurable multi-provider setup for LLMs and TTS engines\n\n---\n\n## 🛠️ Technology Stack\n\n| Component      | Technology                               |\n| -------------- | ---------------------------------------- |\n| **Backend**    | Node.js, TypeScript, LangChain, Langraph |\n| **Frontend**   | Vite, React, TailwindCSS                 |\n| **Database**   | JSON (default), optional vector DB       |\n| **AI/ML**      | Multiple LLM providers, embeddings       |\n| **Audio**      | Edge TTS, ElevenLabs, Google TTS         |\n| **Deployment** | Docker, Docker Compose                   |\n| **Docs**       | pdf-lib, mammoth, pdf-parse              |\n\n---\n\n## ⚡ Getting Started\n\n### Prerequisites\n\n- Node.js v21.18+\n- npm or pnpm\n- ffmpeg (required for podcast audio)\n- Docker (optional)\n\n### Local Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/caviraOSS/pagelm.git\ncd pagelm\n\n# Linux:\n  chmod 777 ./setup.sh\n  ./setup.sh\n\n# Windows:\n  Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser\n  ./setup.ps1\n\n# Manual (Both Linux/Windows):\n  # Install dependencies\n  cd backend\n  npm install\n  cd ../frontend\n  npm install\n\n  # Setup environment\n  cd ..\n  npm i -g nodemon\n  cp .env.example .env\n  # Make sure to configure API keys and settings in .env\n\n  # Run these two commands in separate terminals but inside the project directory.\n  # Run backend\n  cd backend\n  npm run dev\n\n  # Run frontend\n  cd frontend\n  npm run dev\n```\n\n👉 Access at: **http://localhost:5173**\n\n### Docker Deployment\n\n```bash\n# Development\ndocker compose up --build\n\n# Production\ndocker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build\n```\n\n- Frontend: http://localhost:5173 (dev) / http://localhost:8080 (prod)\n- Backend: http://localhost:5000\n\n---\n\n## ⚙️ Configuration\n\nAll configuration is handled via environment variables:\n\n- **LLM Provider** – Choose your model backend\n- **TTS Engine** – Select speech service for podcasts\n- **Database Backend** – JSON or vector DB\n- **File Upload Limits** – Customize size/format limits\n\nSee `.env.example` for all options.\n\n---\n\n## 👥 Community\n\nJoin our [Discord](https://discord.gg/P7HaRayqTh) community to connect, share ideas, and take part in exciting discussions!\n\n---\n\n## 🤝 Contributing\n\nWe welcome all contributions.\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/new-feature`)\n3. Commit changes (`git commit -m \"Add feature\"`)\n4. Push (`git push origin feature/new-feature`)\n5. Open a Pull Request\n\n**Guidelines:**\n\n- Follow code style and conventions\n- Add tests where needed\n- Update docs for new features\n- Ensure all tests pass before PR\n\n---\n\n## 💡 Areas to Contribute\n\n- AI model integrations\n- Mobile app support\n- Performance improvements\n- Accessibility features\n- Docs \u0026 tutorials\n\n---\n\n## 💖 Support the Project\n\nIf you find PageLM useful, please consider supporting:\n\n**Ethereum (ERC-20)**:\n\n```\n0x5a12e3f48b6d761a120bc3cd0977e208c362a74e\n```\n\nYour support helps fund ongoing development and hosting.\n\n---\n\n## 📜 License\n\nLicensed under the **CaviraOSS Community License**.  \nFree to use, share, and modify for personal and educational purposes.  \nCommercial use or resale requires prior written permission from CaviraOSS.\n\nSee [LICENSE](LICENSE.md) for full terms.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Built with ❤️ by CaviraOSS and contributors**\n\n⭐ Star us on [GitHub](https://github.com/CaviraOSS/pagelm) if this project helps you!\n\n\u003c/div\u003e\n","funding_links":[],"categories":["学习资源"],"sub_categories":["学习项目"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCaviraOSS%2FPageLM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCaviraOSS%2FPageLM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCaviraOSS%2FPageLM/lists"}