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

https://github.com/h0neyp0t-466/pen2pdf

"๐Ÿ“ Pen2PDF โ€“ AI-powered web app to transform handwritten notes, slides, PDFs & images into editable Markdown โœ๏ธ โ†’ export as polished PDFs ๐Ÿ“„. Features drag & drop ๐Ÿ“ค, real-time editing โšก, responsive UI ๐Ÿ“ฑ, and Google Gemini ๐Ÿค– integration. Perfect for students, creators & pros ๐Ÿš€."
https://github.com/h0neyp0t-466/pen2pdf

ai-app ai-text-extraction document-processing express file-converter google-gemini handwritten-notes javascript markdown-editor nodejs ocr pdf-converter pdf-to-markdown pdf-tools pen2pdf ppt-to-pdf react text-extraction vite web-app

Last synced: 3 months ago
JSON representation

"๐Ÿ“ Pen2PDF โ€“ AI-powered web app to transform handwritten notes, slides, PDFs & images into editable Markdown โœ๏ธ โ†’ export as polished PDFs ๐Ÿ“„. Features drag & drop ๐Ÿ“ค, real-time editing โšก, responsive UI ๐Ÿ“ฑ, and Google Gemini ๐Ÿค– integration. Perfect for students, creators & pros ๐Ÿš€."

Awesome Lists containing this project

README

          

# ๐Ÿ“ Pen2PDF


![GitHub License](https://img.shields.io/github/license/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=brightgreen)
![GitHub Stars](https://img.shields.io/github/stars/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=yellow)
![GitHub Forks](https://img.shields.io/github/forks/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=blue)
![GitHub Issues](https://img.shields.io/github/issues/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=red)
![GitHub Pull Requests](https://img.shields.io/github/issues-pr/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=orange)
![Contributions Welcome](https://img.shields.io/badge/Contributions-Welcome-brightgreen?style=for-the-badge)


![Last Commit](https://img.shields.io/github/last-commit/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=purple)
![Commit Activity](https://img.shields.io/github/commit-activity/m/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=teal)
![Repo Size](https://img.shields.io/github/repo-size/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=blueviolet)
![Code Size](https://img.shields.io/github/languages/code-size/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=indigo)

![Alt](https://repobeats.axiom.co/api/embed/8fe1986afa1884c7762d23efbe8593e501c7f292.svg "Repobeats analytics image")


![Top Language](https://img.shields.io/github/languages/top/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=critical)
![Languages Count](https://img.shields.io/github/languages/count/H0NEYP0T-466/Pen2PDF?style=for-the-badge&color=success)


![Documentation](https://img.shields.io/badge/Docs-Available-green?style=for-the-badge&logo=readthedocs&logoColor=white)
![Open Source Love](https://img.shields.io/badge/Open%20Source-%E2%9D%A4-red?style=for-the-badge)

**A comprehensive productivity suite that combines AI-powered document processing, schedule management, task organization, and intelligent note-taking in one unified platform.**

Pen2PDF Suite is a modern web application that offers six powerful productivity tools: AI-powered text extraction and PDF conversion, intelligent timetable management with Excel/CSV import, comprehensive todo list management with subtasks, smart notes generation with a searchable library, a full-featured digital whiteboard, and an AI assistant (Bella) for intelligent help - all designed to streamline your academic and professional workflow.

## ๐Ÿ”— Links

- [Demo](#-usage) - See the application in action
- [Documentation](#-table-of-contents) - Complete setup and usage guide
- [Issues](https://github.com/H0NEYP0T-466/Pen2PDF/issues) - Report bugs or request features
- [Contributing](CONTRIBUTING.md) - Help improve the project

## ๐Ÿ“š Table of Contents

- [๐Ÿš€ Features](#-features)
- [โšก Tech Stack](#-tech-stack)
- [๐Ÿ“ฆ Dependencies & Packages](#-dependencies--packages)
- [๐Ÿ“‹ Prerequisites](#-prerequisites)
- [๐Ÿ› ๏ธ Installation](#-installation)
- [๐Ÿ’ป Usage](#-usage)
- [๐Ÿ“ Project Structure](#-project-structure)
- [๐Ÿ“ฆ Submodules](#-submodules)
- [๐Ÿค Contributing](#-contributing)
- [๐Ÿ“„ License](#-license)
- [๐Ÿ›ก๏ธ Security](#-security)
- [๐Ÿ“ Code of Conduct](#-code-of-conduct)
- [๐Ÿ—บ๏ธ Roadmap](#-roadmap)
- [๐Ÿ™ Acknowledgements](#-acknowledgements)

## ๐Ÿš€ Features

### ๐Ÿ“ Pen2PDF - AI-Powered Document Conversion
- **๐Ÿค– AI-Powered Text Extraction**: Uses Google Gemini AI to extract text from various file formats
- **๐Ÿ“ Multiple File Format Support**: PDF, PPT, PPTX, PNG, JPG, WebP
- **โœ๏ธ Real-time Markdown Editor**: Edit extracted text with live markdown formatting
- **๐Ÿ“„ Professional PDF Export**: Generate high-quality PDFs with custom styling
- **๐Ÿ“ค Markdown Export**: Download content as markdown files
- **๐ŸŽฏ Drag & Drop Interface**: Intuitive file upload with drag-and-drop support
- **๐Ÿ“‹ Blank Document Mode**: Start with a blank document without file upload

### ๐Ÿ“… Timetable Management
- **๐Ÿ“Š Schedule Organization**: Create and manage your daily, weekly schedules
- **๐Ÿ“ Excel/CSV Import**: Import timetable data from CSV, XLSX, and XLS files
- **๐Ÿซ Class Management**: Organize subjects, teachers, rooms, and class types (Theory/Lab)
- **โฐ Time Slot Management**: Manage class timings and daily schedules
- **๐Ÿ”„ Bulk Operations**: Import multiple entries at once with validation
- **๐Ÿ—“๏ธ Weekly View**: Visualize your entire week's schedule in an organized format

### โœ… TodoList - Task Management
- **๐Ÿ“‹ Task Organization**: Create todo cards with organized task lists
- **๐Ÿ”— Subtask Support**: Break down complex tasks into manageable subtasks
- **๐Ÿ“Œ Priority Pinning**: Pin important subtasks for quick access
- **โœ“ Progress Tracking**: Mark tasks and subtasks as completed
- **๐Ÿ“Š Task Statistics**: View completion progress and task analytics
- **๐ŸŽฏ Focus Mode**: Expandable cards to focus on specific task groups

### ๐Ÿ“š Notes Generation & Library
- **๐Ÿค– Smart Notes Creation**: AI-powered generation of study notes from uploaded files
- **๐Ÿ“– Notes Library**: Searchable collection of all your generated notes
- **๐Ÿ“ Rich Text Support**: Create and edit notes with markdown formatting
- **๐Ÿ”„ Note Regeneration**: Retry note generation with improved prompts
- **๐Ÿ’พ Persistent Storage**: Save and organize notes in a dedicated library
- **๐ŸŽฏ Blank Note Creation**: Start with empty documents for manual note-taking

### ๐Ÿค– AI Assistant (Bella) - Intelligent Help
- **๐Ÿ’ฌ Multi-Model Support**: Switch between LongCat, Gemini, and GitHub Models
- LongCat-Flash-Chat
- LongCat-Flash-Thinking
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- **GitHub Models (new)**: Access GPT-4o, GPT-4, Claude, and more via GitHub Models API
- Runtime model discovery with your GitHub PAT
- Fallback to catalog when discovery unavailable
- Supports gpt-4o, gpt-4o-mini, claude-3-5-sonnet, claude-4, and more
- **๐Ÿง  Smart Context Window**: AI remembers last 20 messages for coherent conversations
- **๐Ÿ“ Markdown & LaTeX Rendering**: Beautiful formatting for code, math equations, and text
- **๐Ÿ“Ž File Upload**: Upload files for context (vision-capable models only)
- Supports images: PNG, JPEG, WebP, GIF
- Blocked types: .docx, .pdf, .ppt, .pptx, .rtf (no server-side conversion yet)
- Client-side and server-side validation
- **๐Ÿ“š Notes Context**: Load and select notes from your library as context
- **๐Ÿ” Smart Search**: Search through notes to find relevant context
- **๐Ÿ’พ Chat Persistence**: Conversation history is saved and loaded automatically
- **๐ŸŽฏ CLI-Style Interface**: Clean, terminal-inspired chat interface with syntax highlighting
- **๐Ÿ”„ Dynamic Model Switching**: Seamlessly switch between AI models mid-conversation
- **โš ๏ธ Rate Limit Handling**: Graceful error handling with model switch suggestions

### ๐ŸŒ Universal Features
- **๐Ÿ“ฑ Responsive Design**: Works seamlessly on desktop and mobile devices
- **โšก Fast Processing**: Efficient processing and data management
- **๐ŸŽจ Modern UI**: Clean, intuitive interface with consistent design
- **๐Ÿ” Local Storage**: Secure data management with MongoDB integration

## โšก Tech Stack

### Languages
![JavaScript](https://img.shields.io/badge/JavaScript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)
![HTML5](https://img.shields.io/badge/HTML5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white)
![CSS3](https://img.shields.io/badge/CSS3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white)

### Frontend Frameworks & Libraries
![React](https://img.shields.io/badge/React-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
![Vite](https://img.shields.io/badge/Vite-%23646CFF.svg?style=for-the-badge&logo=vite&logoColor=white)
![React Router](https://img.shields.io/badge/React_Router-CA4245?style=for-the-badge&logo=react-router&logoColor=white)

### Backend Frameworks
![Express.js](https://img.shields.io/badge/Express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB)
![Node.js](https://img.shields.io/badge/Node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white)

### Databases
![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white)
![Mongoose](https://img.shields.io/badge/Mongoose-880000.svg?style=for-the-badge&logo=mongoose&logoColor=white)

### AI
![Google Gemini](https://img.shields.io/badge/Google%20Gemini-4285F4?style=for-the-badge&logo=google&logoColor=white)
![LongCat](https://img.shields.io/badge/LongCat-FF6B6B?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS0)

### Tools & Libraries
![Axios](https://img.shields.io/badge/Axios-5A29E4?style=for-the-badge&logo=axios&logoColor=white)
![Marked](https://img.shields.io/badge/Marked-000000?style=for-the-badge&logo=markdown&logoColor=white)
![html2pdf.js](https://img.shields.io/badge/html2pdf.js-FF6B6B?style=for-the-badge&logo=javascript&logoColor=white)
![Papa Parse](https://img.shields.io/badge/Papa_Parse-FF9900?style=for-the-badge&logo=javascript&logoColor=white)
![XLSX](https://img.shields.io/badge/XLSX-217346?style=for-the-badge&logo=microsoft-excel&logoColor=white)
![KaTeX](https://img.shields.io/badge/KaTeX-008080?style=for-the-badge&logo=latex&logoColor=white)
![Fabric.js](https://img.shields.io/badge/Fabric.js-FF6B6B?style=for-the-badge&logo=javascript&logoColor=white)
![docx](https://img.shields.io/badge/docx-2B579A?style=for-the-badge&logo=microsoft-word&logoColor=white)
![CORS](https://img.shields.io/badge/CORS-000000?style=for-the-badge&logo=javascript&logoColor=white)

### DevOps & Development Tools
![ESLint](https://img.shields.io/badge/ESLint-4B3263?style=for-the-badge&logo=eslint&logoColor=white)
![Git](https://img.shields.io/badge/Git-F05032?style=for-the-badge&logo=git&logoColor=white)
![GitHub](https://img.shields.io/badge/GitHub-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)
![npm](https://img.shields.io/badge/npm-CB3837?style=for-the-badge&logo=npm&logoColor=white)
![Dotenv](https://img.shields.io/badge/Dotenv-ECD53F?style=for-the-badge&logo=dotenv&logoColor=black)

## ๐Ÿ“ฆ Dependencies & Packages

This project uses carefully selected packages across frontend and backend to deliver powerful features. Below is the complete list of dependencies organized by category.

๐ŸŽจ Frontend Runtime Dependencies

#### Core Libraries
[![axios](https://img.shields.io/npm/v/axios?style=for-the-badge&label=axios&color=5A29E4)](https://www.npmjs.com/package/axios)
[![react](https://img.shields.io/npm/v/react?style=for-the-badge&label=react&color=61DAFB)](https://www.npmjs.com/package/react)
[![react-dom](https://img.shields.io/npm/v/react-dom?style=for-the-badge&label=react-dom&color=61DAFB)](https://www.npmjs.com/package/react-dom)
[![react-router-dom](https://img.shields.io/npm/v/react-router-dom?style=for-the-badge&label=react-router-dom&color=CA4245)](https://www.npmjs.com/package/react-router-dom)

#### Document Processing & Export
[![docx](https://img.shields.io/npm/v/docx?style=for-the-badge&label=docx&color=2B579A)](https://www.npmjs.com/package/docx)
[![html2pdf.js](https://img.shields.io/npm/v/html2pdf.js?style=for-the-badge&label=html2pdf.js&color=FF6B6B)](https://www.npmjs.com/package/html2pdf.js)
[![jspdf](https://img.shields.io/npm/v/jspdf?style=for-the-badge&label=jspdf&color=F16529)](https://www.npmjs.com/package/jspdf)
[![xlsx](https://img.shields.io/npm/v/xlsx?style=for-the-badge&label=xlsx&color=217346)](https://www.npmjs.com/package/xlsx)
[![papaparse](https://img.shields.io/npm/v/papaparse?style=for-the-badge&label=papaparse&color=FF9900)](https://www.npmjs.com/package/papaparse)

#### Markdown & Math Rendering
[![marked](https://img.shields.io/npm/v/marked?style=for-the-badge&label=marked&color=000000)](https://www.npmjs.com/package/marked)
[![markdown-it](https://img.shields.io/npm/v/markdown-it?style=for-the-badge&label=markdown-it&color=000000)](https://www.npmjs.com/package/markdown-it)
[![katex](https://img.shields.io/npm/v/katex?style=for-the-badge&label=katex&color=008080)](https://www.npmjs.com/package/katex)
[![marked-katex-extension](https://img.shields.io/npm/v/marked-katex-extension?style=for-the-badge&label=marked-katex-extension&color=008080)](https://www.npmjs.com/package/marked-katex-extension)

#### Canvas & Graphics
[![fabric](https://img.shields.io/npm/v/fabric?style=for-the-badge&label=fabric&color=FF6B6B)](https://www.npmjs.com/package/fabric)

#### Configuration & Environment
[![dotenv](https://img.shields.io/npm/v/dotenv?style=for-the-badge&label=dotenv&color=ECD53F)](https://www.npmjs.com/package/dotenv)

๐Ÿ› ๏ธ Frontend Dev/Build Dependencies

#### Build Tools
[![vite](https://img.shields.io/npm/v/vite?style=for-the-badge&label=vite&color=646CFF)](https://www.npmjs.com/package/vite)
[![@vitejs/plugin-react](https://img.shields.io/npm/v/@vitejs/plugin-react?style=for-the-badge&label=@vitejs/plugin-react&color=646CFF)](https://www.npmjs.com/package/@vitejs/plugin-react)

#### Code Quality & Linting
[![eslint](https://img.shields.io/npm/v/eslint?style=for-the-badge&label=eslint&color=4B3263)](https://www.npmjs.com/package/eslint)
[![@eslint/js](https://img.shields.io/npm/v/@eslint/js?style=for-the-badge&label=@eslint/js&color=4B3263)](https://www.npmjs.com/package/@eslint/js)
[![eslint-plugin-react-hooks](https://img.shields.io/npm/v/eslint-plugin-react-hooks?style=for-the-badge&label=eslint-plugin-react-hooks&color=4B3263)](https://www.npmjs.com/package/eslint-plugin-react-hooks)
[![eslint-plugin-react-refresh](https://img.shields.io/npm/v/eslint-plugin-react-refresh?style=for-the-badge&label=eslint-plugin-react-refresh&color=4B3263)](https://www.npmjs.com/package/eslint-plugin-react-refresh)

#### Type Definitions
[![@types/react](https://img.shields.io/npm/v/@types/react?style=for-the-badge&label=@types/react&color=3178C6)](https://www.npmjs.com/package/@types/react)
[![@types/react-dom](https://img.shields.io/npm/v/@types/react-dom?style=for-the-badge&label=@types/react-dom&color=3178C6)](https://www.npmjs.com/package/@types/react-dom)

#### Utilities
[![globals](https://img.shields.io/npm/v/globals?style=for-the-badge&label=globals&color=777777)](https://www.npmjs.com/package/globals)

โš™๏ธ Backend Runtime Dependencies

#### Server Framework
[![express](https://img.shields.io/npm/v/express?style=for-the-badge&label=express&color=000000)](https://www.npmjs.com/package/express)
[![cors](https://img.shields.io/npm/v/cors?style=for-the-badge&label=cors&color=000000)](https://www.npmjs.com/package/cors)
[![express-fileupload](https://img.shields.io/npm/v/express-fileupload?style=for-the-badge&label=express-fileupload&color=000000)](https://www.npmjs.com/package/express-fileupload)

#### Database
[![mongoose](https://img.shields.io/npm/v/mongoose?style=for-the-badge&label=mongoose&color=880000)](https://www.npmjs.com/package/mongoose)

#### AI Integration
[![@google/genai](https://img.shields.io/npm/v/@google/genai?style=for-the-badge&label=@google/genai&color=4285F4)](https://www.npmjs.com/package/@google/genai)

#### Configuration
[![dotenv](https://img.shields.io/npm/v/dotenv?style=for-the-badge&label=dotenv&color=ECD53F)](https://www.npmjs.com/package/dotenv)

๐Ÿงช Backend Dev/Test Dependencies

#### Testing Tools
[![mongodb-memory-server](https://img.shields.io/npm/v/mongodb-memory-server?style=for-the-badge&label=mongodb-memory-server&color=4ea94b)](https://www.npmjs.com/package/mongodb-memory-server)

### ๐Ÿ“Œ Key Dependencies Overview

| Package | Purpose | Category |
|---------|---------|----------|
| **axios** | HTTP client for API requests | Frontend - Network |
| **react** | UI framework for building interactive interfaces | Frontend - Core |
| **docx** | Create and export .docx documents | Frontend - Document Processing |
| **html2pdf.js** | Generate PDFs from HTML content | Frontend - PDF Generation |
| **marked** | Markdown parsing and rendering | Frontend - Markdown |
| **katex** | LaTeX math equation rendering | Frontend - Math Rendering |
| **fabric** | Canvas manipulation for whiteboard | Frontend - Graphics |
| **xlsx** | Excel file parsing and generation | Frontend - Data Import/Export |
| **papaparse** | CSV parsing and processing | Frontend - CSV Processing |
| **express** | Backend web framework | Backend - Server |
| **mongoose** | MongoDB object modeling | Backend - Database |
| **@google/genai** | Google Gemini AI integration | Backend - AI Services |
| **vite** | Fast build tool and dev server | Dev - Build Tool |
| **eslint** | Code linting and quality checks | Dev - Code Quality |

> **Note**: All dependencies are managed through npm. Badges display the latest available versions from the npm registry. The project uses semantic versioning (^) for flexible updates within major versions. See `package.json` files for exact version constraints used in this project.

## ๐Ÿ“‹ Prerequisites

Before you begin, ensure you have the following installed:

- **Node.js** (v16.0.0 or higher)
- **npm** (v7.0.0 or higher)
- **MongoDB** (v4.4 or higher) - For data persistence across all features
- **Google Gemini AI API Key** (for AI-powered text extraction and notes generation)
- **LongCat API Key** (optional - for AI Assistant alternative models)
- **GitHub Personal Access Token** (optional - for GitHub Models: GPT-4o, Claude, etc.)

## ๐Ÿ› ๏ธ Installation

### 1. Clone the Repository

```bash
git clone https://github.com/H0NEYP0T-466/Pen2PDF.git
cd Pen2PDF
```

### 2. Install Frontend Dependencies

```bash
npm install
```

### 3. Install Backend Dependencies

```bash
cd backend
npm install
```

### 4. Database Setup

Ensure MongoDB is running on your system. The application uses multiple databases:

```bash
# Start MongoDB service (varies by OS)
# macOS (with Homebrew): brew services start mongodb-community
# Ubuntu: sudo systemctl start mongod
# Windows: net start MongoDB
```

The application will automatically create the following databases:
- `todolist` - For todo management data
- `timetable` - For timetable and schedule data
- `notes` - For notes and study materials
- `chat` - For AI assistant chat history

### 5. Environment Setup

Create a `.env` file in the `backend` directory:

```bash
cd backend
touch .env
```

Add your API keys to the `.env` file:

```env
# Required: Google Gemini API for text extraction and notes generation
GEMINI_API_KEY=your_google_gemini_api_key_here

# Optional: LongCat API for AI Assistant alternative models
LONGCAT_API_KEY=your_longcat_api_key_here

# Optional: GitHub Personal Access Token for GitHub Models (GPT-4o, Claude, etc.)
# Get your PAT from https://github.com/settings/tokens with model access scope
githubModelsPAT=your_github_pat_here
```

**GitHub Models Setup** (Optional):
To use GitHub Models (GPT-4o, GPT-4, Claude, etc.) in the AI Assistant:
1. Visit https://github.com/settings/tokens
2. Create a new Personal Access Token (classic)
- The exact scope requirements may depend on your GitHub subscription
- For GitHub Models access, your account needs GitHub Copilot or GitHub Models access
3. Ensure you have access to GitHub Models (included with GitHub Copilot or Student Developer Pack)
4. Copy the token and add it as `githubModelsPAT` in your `.env` file
5. The AI Assistant will automatically discover available models at runtime via the GitHub Models API

> **Note**: Without a GitHub PAT, the AI Assistant will still work with LongCat and Gemini models. GitHub Models will be shown as "unavailable" in the model selector.

### 6. Start the Development Servers

#### Backend Server (Terminal 1)
```bash
cd backend
node index.js
```

#### Frontend Server (Terminal 2)
```bash
npm run dev
```

The application will be available at `http://localhost:5173` (frontend) and the backend API at `http://localhost:8000`.

## ๐Ÿ’ป Usage

The Pen2PDF Suite provides six main productivity tools accessible from the landing page. Each tool is designed to handle specific aspects of your workflow:

### ๐Ÿ“ Pen2PDF - Document Conversion

1. **๐Ÿ“ค Upload Files**: Drag and drop or click to upload PDF, PPT, PPTX, or image files
2. **๐Ÿ”„ Reorder Files**: Use the up/down arrows to arrange files in the desired order
3. **๐Ÿค– Extract Text**: Click "Extract All" to process files using AI text extraction
4. **โœ๏ธ Edit Content**: Use the markdown editor to refine and format the extracted text
5. **๐Ÿ“„ Export**: Download as PDF or markdown file

#### File Format Support
| Format | Description | Notes |
|--------|-------------|-------|
| PDF | Portable Document Format | Supports text and image-based PDFs |
| PPT/PPTX | PowerPoint Presentations | Extract text from slides |
| PNG/JPG/WebP | Image Files | OCR text extraction from images |

### ๐Ÿ“… Timetable Management

1. **โž• Add Entries**: Create individual timetable entries with subject, teacher, room, and timing details
2. **๐Ÿ“ Import Data**: Upload CSV, XLSX, or XLS files with bulk timetable data
3. **๐Ÿ“Š View Schedule**: Browse your organized weekly schedule
4. **โœ๏ธ Edit Entries**: Modify existing timetable entries as needed
5. **๐Ÿ—‘๏ธ Manage Data**: Delete individual entries or clear entire schedule

#### Import File Format
Your import file should contain these columns:
```
Subject Name, Teacher Name, Class Number, Class Type, Timings, Day
```

### โœ… TodoList Management

1. **๐Ÿ“‹ Create Cards**: Add new todo cards for different projects or categories
2. **โž• Add Subtasks**: Break down cards into specific actionable subtasks
3. **๐Ÿ“Œ Pin Important**: Pin high-priority subtasks for easy access
4. **โœ“ Track Progress**: Mark subtasks as completed to monitor progress
5. **๐Ÿ“Š View Analytics**: See completion statistics and progress overview

### ๐Ÿ“š Notes Generation & Library

1. **๐Ÿ“ค Upload Content**: Upload files (PDF, PPTX, etc.) for note generation
2. **๐Ÿค– Generate Notes**: AI creates structured study notes from your content
3. **โœ๏ธ Edit Notes**: Refine generated notes using the markdown editor
4. **๐Ÿ’พ Save to Library**: Store notes in your personal notes library
5. **๐Ÿ” Browse Library**: Access and search through your saved notes collection
6. **๐Ÿ“‹ Blank Notes**: Create notes from scratch without file upload

### ๐Ÿค– AI Assistant (Bella) Usage

1. **๐Ÿ’ฌ Start Chat**: Open AI Assistant from the landing page
2. **๐Ÿ”„ Select Model**: Choose from LongCat or Gemini models in the dropdown
- LongCat models: Fast chat and thinking modes
- Gemini models: Advanced AI with file upload support
3. **๐Ÿ“Ž Upload Files** (Gemini only): Click upload button to add files as context
4. **๐Ÿ“š Add Notes Context**:
- Open context panel
- Search for relevant notes
- Check notes to include them as context
5. **๐Ÿ’ฌ Send Messages**: Type your message and press Enter or click Send
6. **๐Ÿง  Context-Aware Chat**: AI remembers your last 20 messages for better conversations
7. **๐Ÿ“ Rich Formatting**: AI responses render with markdown, code blocks, and LaTeX math
8. **๐Ÿ’พ Conversation History**: Your chat is automatically saved and loaded on next visit
9. **๐Ÿ”„ Switch Models**: Change models anytime to suit your needs

### ๐ŸŽฏ Navigation

- **๐Ÿ  Landing Page**: Access all six tools from the main dashboard
- **๐Ÿ”™ Easy Return**: Navigate back to the main menu from any tool
- **๐Ÿ“ฑ Mobile Friendly**: All features work seamlessly on mobile devices

## ๐Ÿ“ Project Structure

```
Pen2PDF/
โ”œโ”€โ”€ ๐Ÿ“ public/ # Static assets
โ”‚ โ””โ”€โ”€ favi.png # Favicon
โ”œโ”€โ”€ ๐Ÿ“ src/ # Frontend source code
โ”‚ โ”œโ”€โ”€ App.jsx # Main React application
โ”‚ โ”œโ”€โ”€ App.css # Application styles
โ”‚ โ”œโ”€โ”€ main.jsx # React entry point
โ”‚ โ”œโ”€โ”€ index.css # Global styles
โ”‚ โ””โ”€โ”€ ๐Ÿ“ components/ # React components
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ LandingPage/ # Main dashboard
โ”‚ โ”‚ โ”œโ”€โ”€ LandingPage.jsx
โ”‚ โ”‚ โ””โ”€โ”€ LandingPage.css
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ Notes/ # Notes generation & library
โ”‚ โ”‚ โ”œโ”€โ”€ Notes.jsx
โ”‚ โ”‚ โ””โ”€โ”€ Notes.css
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ Timetable/ # Schedule management
โ”‚ โ”‚ โ”œโ”€โ”€ Timetable.jsx
โ”‚ โ”‚ โ””โ”€โ”€ Timetable.css
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ TodoList/ # Task management
โ”‚ โ”‚ โ”œโ”€โ”€ TodoList.jsx
โ”‚ โ”‚ โ””โ”€โ”€ TodoList.css
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ AIAssistant/ # AI chat assistant
โ”‚ โ”‚ โ”œโ”€โ”€ AIAssistant.jsx
โ”‚ โ”‚ โ””โ”€โ”€ AIAssistant.css
โ”‚ โ””โ”€โ”€ ๐Ÿ“ WeekCounter/ # Week counter widget
โ”‚ โ”œโ”€โ”€ WeekCounter.jsx
โ”‚ โ””โ”€โ”€ WeekCounter.css
โ”œโ”€โ”€ ๐Ÿ“ backend/ # Backend server
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ controller/ # Request handlers
โ”‚ โ”‚ โ”œโ”€โ”€ controller.js # Pen2PDF text extraction
โ”‚ โ”‚ โ”œโ”€โ”€ dbcontroller.js # TodoList management
โ”‚ โ”‚ โ”œโ”€โ”€ timetableController.js # Timetable management
โ”‚ โ”‚ โ”œโ”€โ”€ notesController.js # Notes management
โ”‚ โ”‚ โ”œโ”€โ”€ whiteboardController.js # Whiteboard management
โ”‚ โ”‚ โ””โ”€โ”€ chatController.js # Chat history management
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ model/ # Database models
โ”‚ โ”‚ โ”œโ”€โ”€ todoData.js # Todo data schema
โ”‚ โ”‚ โ”œโ”€โ”€ timetableData.js # Timetable data schema
โ”‚ โ”‚ โ”œโ”€โ”€ notesData.js # Notes data schema
โ”‚ โ”‚ โ”œโ”€โ”€ whiteboardData.js # Whiteboard data schema
โ”‚ โ”‚ โ””โ”€โ”€ chatData.js # Chat history schema
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ config/ # Database configuration
โ”‚ โ”‚ โ””โ”€โ”€ database.js # MongoDB connections
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ gemini/ # Gemini AI integration
โ”‚ โ”‚ โ”œโ”€โ”€ gemini.js # Pen2PDF text extraction
โ”‚ โ”‚ โ””โ”€โ”€ notesgemini.js # Notes generation
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ longcat/ # LongCat AI integration
โ”‚ โ”‚ โ””โ”€โ”€ longcat.js # Chat API integration
โ”‚ โ”œโ”€โ”€ index.js # Express server entry point
โ”‚ โ””โ”€โ”€ package.json # Backend dependencies
โ”œโ”€โ”€ ๐Ÿ“„ README.md # Project documentation
โ”œโ”€โ”€ ๐Ÿ“„ CHAT_CONTEXT_GUIDE.md # Chat context & formatting guide
โ”œโ”€โ”€ ๐Ÿ“„ TIMETABLE_IMPORT_GUIDE.md # Timetable import guide
โ”œโ”€โ”€ ๐Ÿ“„ sample_timetable.csv # Example timetable format
โ”œโ”€โ”€ ๐Ÿ“„ LICENSE # MIT License
โ”œโ”€โ”€ ๐Ÿ“„ CONTRIBUTING.md # Contribution guidelines
โ”œโ”€โ”€ ๐Ÿ“„ package.json # Frontend dependencies
โ”œโ”€โ”€ ๐Ÿ“„ vite.config.js # Vite configuration
โ”œโ”€โ”€ ๐Ÿ“„ eslint.config.js # ESLint configuration
โ””โ”€โ”€ ๐Ÿ“„ index.html # HTML template
```

## ๐Ÿ“ฆ Submodules

This project currently does not use any Git submodules. All dependencies are managed through npm package managers and are listed in the respective `package.json` files.

If you're looking to extend Pen2PDF with additional modules, please refer to our [Contributing Guidelines](CONTRIBUTING.md) for best practices on project architecture and integration.

## ๐Ÿค Contributing

We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details on:

- ๐Ÿ”ง Setting up the development environment
- ๐Ÿ“ Code style and formatting requirements
- ๐Ÿงช Testing procedures
- ๐Ÿ“‹ Submitting pull requests
- ๐Ÿ› Reporting bugs
- ๐Ÿ’ก Requesting features

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ›ก๏ธ Security

We take security seriously. If you discover a security vulnerability, please see our [Security Policy](SECURITY.md) for information on how to report it responsibly.

## ๐Ÿ“ Code of Conduct

This project follows the Contributor Covenant Code of Conduct. Please read our [Code of Conduct](CODE_OF_CONDUCT.md) to understand the expected behavior when participating in our community.

## ๐Ÿ—บ๏ธ Roadmap

### โœ… Current Features
- **๐Ÿ“ Pen2PDF**: AI-powered text extraction using Google Gemini from multiple file formats
- **๐Ÿ“… Timetable**: Complete schedule management with Excel/CSV import functionality
- **โœ… TodoList**: Task management with subtasks, pinning, and progress tracking
- **๐Ÿ“š Notes**: AI-powered notes generation and searchable notes library
- **๐ŸŽจ Whiteboard**: Full-featured digital whiteboard with drawing, text, images, and export
- **๐Ÿค– AI Assistant (Bella)**: Multi-model AI chat with file upload and notes context
- **๐ŸŽจ Unified Interface**: Consistent design across all productivity tools
- **๐Ÿ“ฑ Responsive Design**: Full mobile and desktop compatibility
- **๐Ÿ” Data Persistence**: MongoDB integration for all features

### ๐Ÿšง In Development
- **๐Ÿ”„ Cross-feature Integration**: Link notes to specific timetable subjects and todo tasks
- **๐Ÿ“Š Analytics Dashboard**: Usage statistics and productivity insights across all tools
- **๐ŸŽฏ Smart Suggestions**: AI-powered recommendations based on usage patterns
- **๐Ÿ” Global Search**: Search across all notes, todos, and timetable entries
- **๐Ÿ“… Calendar Integration**: Sync timetable with external calendar applications

### ๐Ÿ”ฎ Future Vision
- **โ˜๏ธ Cloud Sync**: Multi-device synchronization and backup
- **๐Ÿ‘ฅ Collaboration**: Share timetables, notes, and todo lists with team members
- **๐Ÿ“ฑ Mobile Apps**: Native iOS and Android applications
- **๐Ÿ”Œ API Integrations**: Connect with popular productivity and educational tools
- **๐ŸŽ“ Academic Features**: GPA tracking, assignment deadlines, exam scheduling
- **๐Ÿค– Advanced AI**: Multi-provider AI support (OpenAI, Claude, etc.)
- **๐Ÿ“ˆ Progress Analytics**: Detailed productivity metrics and goal tracking
- **๐ŸŽจ Customization**: Themes, templates, and personalized workflows

## ๐Ÿ™ Acknowledgements

- **Google Gemini AI** - Powering our intelligent text extraction
- **React Team** - For the amazing frontend framework
- **Vite** - For blazing fast development experience
- **html2pdf.js** - For client-side PDF generation
- **Marked** - For markdown parsing and rendering
- **Express.js** - For robust backend API development

---

Made with โค๏ธ by H0NEYP0T-466