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: 27 days 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)


![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 four powerful productivity tools: AI-powered text extraction and PDF conversion, intelligent timetable management with Excel/CSV import, comprehensive todo list management with subtasks, and smart notes generation with a searchable library - 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)
- [๐Ÿ“‹ Prerequisites](#-prerequisites)
- [๐Ÿ› ๏ธ Installation](#๏ธ-installation)
- [๐Ÿ’ป Usage](#-usage)
- [๐Ÿ“ Project Structure](#-project-structure)
- [๐Ÿค 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

### ๐ŸŒ 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 & ML
![Google Gemini](https://img.shields.io/badge/Google%20Gemini-4285F4?style=for-the-badge&logo=google&logoColor=white)

### 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)

### 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)

## ๐Ÿ“‹ 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)

## ๐Ÿ› ๏ธ 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

### 5. Environment Setup

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

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

Add your Google Gemini AI API key to the `.env` file:

```env
GEMINI_API_KEY=your_google_gemini_api_key_here
```

### 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 four 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

### ๐ŸŽฏ Navigation

- **๐Ÿ  Landing Page**: Access all four 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
โ”œโ”€โ”€ ๐Ÿ“ backend/ # Backend server
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ controller/ # Request handlers
โ”‚ โ”‚ โ”œโ”€โ”€ controller.js # Pen2PDF text extraction
โ”‚ โ”‚ โ”œโ”€โ”€ dbcontroller.js # TodoList management
โ”‚ โ”‚ โ”œโ”€โ”€ timetableController.js # Timetable management
โ”‚ โ”‚ โ””โ”€โ”€ notesController.js # Notes management
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ model/ # Database models
โ”‚ โ”‚ โ”œโ”€โ”€ todoData.js # Todo data schema
โ”‚ โ”‚ โ”œโ”€โ”€ timetableData.js # Timetable data schema
โ”‚ โ”‚ โ””โ”€โ”€ notesData.js # Notes data schema
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ config/ # Database configuration
โ”‚ โ”‚ โ””โ”€โ”€ database.js # MongoDB connections
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ gemini/ # AI integration
โ”‚ โ”‚ โ”œโ”€โ”€ gemini.js # Pen2PDF text extraction
โ”‚ โ”‚ โ””โ”€โ”€ notesgemini.js # Notes generation
โ”‚ โ”œโ”€โ”€ index.js # Express server entry point
โ”‚ โ””โ”€โ”€ package.json # Backend dependencies
โ”œโ”€โ”€ ๐Ÿ“„ README.md # Project documentation
โ”œโ”€โ”€ ๐Ÿ“„ 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
```

## ๐Ÿค 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
- **๐ŸŽจ 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](https://github.com/H0NEYP0T-466)**