An open API service indexing awesome lists of open source software.

https://github.com/CaviraOSS/PageLM

PageLM is a community driven version of NotebookLM & a education platform that transforms study materials into interactive resources like quizzes, flashcards, notes, and podcasts.
https://github.com/CaviraOSS/PageLM

ai docker edtech education flashcards javascript langchain nodejs notebooklm notes oss pagelm podcast quizzes rag react study-tools tailwindcss typescript vite

Last synced: about 20 hours ago
JSON representation

PageLM is a community driven version of NotebookLM & a education platform that transforms study materials into interactive resources like quizzes, flashcards, notes, and podcasts.

Awesome Lists containing this project

README

          



pagelm

# PageLM

**An open source AI powered education platform that transforms study materials into interactive learning experiences, slightly inspired by NotebookLM**

[Report Bug](https://github.com/caviraOSS/pagelm/issues) • [Request Feature](https://github.com/caviraOSS/pagelm/issues) • [Discord server](https://discord.gg/P7HaRayqTh)


License: PageLM Community License
Node.js Version
React
TypeScript
Discord

---

# **🔥 Spread the Word!**


Share on X
 
Share on LinkedIn
 
Share on Reddit
 
Submit to Hacker News
 
Share on DEV Community

## Demo

PageLM Demo

https://github.com/user-attachments/assets/98fae4ef-c2b7-4ad2-bfe9-1e0665eb4d71


Your browser does not support the video tag.

> **Note**: If the video doesn't load above, you can [download the demo video directly](.github/demo.mp4)

---

## 🚀 Features

PageLM converts study material into **interactive resources** including quizzes, flashcards, structured notes, and podcasts.
The platform provides a modern interface for students, educators, and researchers to **enhance learning efficiency** using state-of-the-art LLMs and TTS systems.

### Learning Tools

- **Contextual Chat** – Ask questions about uploaded documents (PDF, DOCX, Markdown, TXT)
- **SmartNotes** – Generate Cornell-style notes automatically from topics or uploaded content
- **Flashcards** – Extract non-overlapping flashcards for spaced repetition
- **Quizzes** – Create interactive quizzes with hints, explanations, and scoring
- **AI Podcast** – Convert notes and topics into engaging audio content for learning on the go
- **Voice Transcribe** - Convert lecture recordings and voice notes into organized, searchable study materials instantly.
- **Homework Planner** - Plans your Homework Smartly using AI, Assists if your stuck.
- **ExamLab** - Simulate any exam, get feedback, and be prepared for the exam
- **Debate** - Debate with AI to improve your Debate skills.
- **Study Companion** - A personalised AI Companion that assists you.

### Supported AI Models

- Google Gemini • OpenAI GPT • Anthropic Claude • xAI Grok • [MiniMax](https://www.minimax.io/) • Ollama (local) • OpenRouter

### Embedding Providers

- OpenAI • Gemini • Ollama

### Technical Highlights

- WebSocket streaming for real-time chat, notes, and podcast generation
- JSON or vector database support for embeddings and retrieval
- File-based persistent storage for generated content
- Markdown-based outputs for structured answers and notes
- Configurable multi-provider setup for LLMs and TTS engines

---

## 🛠️ Technology Stack

| Component | Technology |
| -------------- | ---------------------------------------- |
| **Backend** | Node.js, TypeScript, LangChain, Langraph |
| **Frontend** | Vite, React, TailwindCSS |
| **Database** | JSON (default), optional vector DB |
| **AI/ML** | Multiple LLM providers, embeddings |
| **Audio** | Edge TTS, ElevenLabs, Google TTS |
| **Deployment** | Docker, Docker Compose |
| **Docs** | pdf-lib, mammoth, pdf-parse |

---

## ⚡ Getting Started

### Prerequisites

- Node.js v21.18+
- npm or pnpm
- ffmpeg (required for podcast audio)
- Docker (optional)

### Local Development

```bash
# Clone the repository
git clone https://github.com/caviraOSS/pagelm.git
cd pagelm

# Linux:
chmod 777 ./setup.sh
./setup.sh

# Windows:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
./setup.ps1

# Manual (Both Linux/Windows):
# Install dependencies
cd backend
npm install
cd ../frontend
npm install

# Setup environment
cd ..
npm i -g nodemon
cp .env.example .env
# Make sure to configure API keys and settings in .env

# Run these two commands in separate terminals but inside the project directory.
# Run backend
cd backend
npm run dev

# Run frontend
cd frontend
npm run dev
```

👉 Access at: **http://localhost:5173**

### Docker Deployment

```bash
# Development
docker compose up --build

# Production
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build
```

- Frontend: http://localhost:5173 (dev) / http://localhost:8080 (prod)
- Backend: http://localhost:5000

---

## ⚙️ Configuration

All configuration is handled via environment variables:

- **LLM Provider** – Choose your model backend
- **TTS Engine** – Select speech service for podcasts
- **Database Backend** – JSON or vector DB
- **File Upload Limits** – Customize size/format limits

See `.env.example` for all options.

---

## 👥 Community

Join our [Discord](https://discord.gg/P7HaRayqTh) community to connect, share ideas, and take part in exciting discussions!

---

## 🤝 Contributing

We welcome all contributions.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/new-feature`)
3. Commit changes (`git commit -m "Add feature"`)
4. Push (`git push origin feature/new-feature`)
5. Open a Pull Request

**Guidelines:**

- Follow code style and conventions
- Add tests where needed
- Update docs for new features
- Ensure all tests pass before PR

---

## 💡 Areas to Contribute

- AI model integrations
- Mobile app support
- Performance improvements
- Accessibility features
- Docs & tutorials

---

## 💖 Support the Project

If you find PageLM useful, please consider supporting:

**Ethereum (ERC-20)**:

```
0x5a12e3f48b6d761a120bc3cd0977e208c362a74e
```

Your support helps fund ongoing development and hosting.

---

## 📜 License

Licensed under the **CaviraOSS Community License**.
Free to use, share, and modify for personal and educational purposes.
Commercial use or resale requires prior written permission from CaviraOSS.

See [LICENSE](LICENSE.md) for full terms.

---

**Built with ❤️ by CaviraOSS and contributors**

⭐ Star us on [GitHub](https://github.com/CaviraOSS/pagelm) if this project helps you!