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.
- Demo - See the application in action
- Documentation - Complete setup and usage guide
- Issues - Report bugs or request features
- Contributing - Help improve the project
- ๐ Features
- โก Tech Stack
- ๐ Prerequisites
- ๐ ๏ธ Installation
- ๐ป Usage
- ๐ Project Structure
- ๐ค Contributing
- ๐ License
- ๐ก๏ธ Security
- ๐ Code of Conduct
- ๐บ๏ธ Roadmap
- ๐ Acknowledgements
- ๐ค 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
- ๐ 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
- ๐ 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
- ๐ค 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
- ๐ฑ 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
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)
git clone https://github.com/H0NEYP0T-466/Pen2PDF.git
cd Pen2PDF
npm install
cd backend
npm install
Ensure MongoDB is running on your system. The application uses multiple databases:
# 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 datatimetable
- For timetable and schedule datanotes
- For notes and study materials
Create a .env
file in the backend
directory:
cd backend
touch .env
Add your Google Gemini AI API key to the .env
file:
GEMINI_API_KEY=your_google_gemini_api_key_here
cd backend
node index.js
npm run dev
The application will be available at http://localhost:5173
(frontend) and the backend API at http://localhost:8000
.
The Pen2PDF Suite provides four main productivity tools accessible from the landing page. Each tool is designed to handle specific aspects of your workflow:
- ๐ค Upload Files: Drag and drop or click to upload PDF, PPT, PPTX, or image files
- ๐ Reorder Files: Use the up/down arrows to arrange files in the desired order
- ๐ค Extract Text: Click "Extract All" to process files using AI text extraction
- โ๏ธ Edit Content: Use the markdown editor to refine and format the extracted text
- ๐ Export: Download as PDF or markdown file
Format | Description | Notes |
---|---|---|
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 |
- โ Add Entries: Create individual timetable entries with subject, teacher, room, and timing details
- ๐ Import Data: Upload CSV, XLSX, or XLS files with bulk timetable data
- ๐ View Schedule: Browse your organized weekly schedule
- โ๏ธ Edit Entries: Modify existing timetable entries as needed
- ๐๏ธ Manage Data: Delete individual entries or clear entire schedule
Your import file should contain these columns:
Subject Name, Teacher Name, Class Number, Class Type, Timings, Day
- ๐ Create Cards: Add new todo cards for different projects or categories
- โ Add Subtasks: Break down cards into specific actionable subtasks
- ๐ Pin Important: Pin high-priority subtasks for easy access
- โ Track Progress: Mark subtasks as completed to monitor progress
- ๐ View Analytics: See completion statistics and progress overview
- ๐ค Upload Content: Upload files (PDF, PPTX, etc.) for note generation
- ๐ค Generate Notes: AI creates structured study notes from your content
- โ๏ธ Edit Notes: Refine generated notes using the markdown editor
- ๐พ Save to Library: Store notes in your personal notes library
- ๐ Browse Library: Access and search through your saved notes collection
- ๐ Blank Notes: Create notes from scratch without file upload
- ๐ 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
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
We welcome contributions! Please see our Contributing Guidelines for details on:
- ๐ง Setting up the development environment
- ๐ Code style and formatting requirements
- ๐งช Testing procedures
- ๐ Submitting pull requests
- ๐ Reporting bugs
- ๐ก Requesting features
This project is licensed under the MIT License - see the LICENSE file for details.
We take security seriously. If you discover a security vulnerability, please see our Security Policy for information on how to report it responsibly.
This project follows the Contributor Covenant Code of Conduct. Please read our Code of Conduct to understand the expected behavior when participating in our community.
- ๐ 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
- ๐ 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
- โ๏ธ 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
- 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