Transform handwritten notes into polished digital content with the power of AI.
Skribb AI is an intelligent note transformation platform that combines advanced OCR technology, AI-powered text enhancement, and secure user management to convert messy handwritten notes into clean, organized digital text in seconds.
- Up to 80% accuracy across all handwriting styles
- Supports 25+ languages
- Processes images in ~2.3 seconds on average
- Accepts multiple formats: JPG, PNG, PDF, HEIC, WebP
- Perfect for lecture notes, meeting minutes, and personal journals
- 96% correction accuracy with intelligent grammar and spelling fixes
- Automatic punctuation and style improvements
- Multiple writing styles (professional, academic, casual)
- Processes text in ~1.8 seconds
- Ideal for emails, reports, and academic papers
- 94% key point extraction accuracy
- Customizable summary lengths (short, medium, detailed)
- Multiple output formats (bullet points, executive summary, study notes)
- Up to 80% compression ratio
- Perfect for long meetings, research papers, and lecture notes
- 97% code accuracy with syntax highlighting
- Supports 50+ programming languages
- Automatic language detection
- Preserves indentation and formatting
- Ideal for whiteboard sessions, code reviews, and tutorials
- User registration and login with bcrypt password hashing
- Google OAuth integration
- JWT-based session management
- Secure password validation and duplicate checking
Skribb AI uses a modern, scalable architecture:
┌─────────────────────────────────────────────────────────────┐
│ Frontend (HTML/CSS/JS) │
│ • Tailwind CSS for responsive design │
│ • Alpine.js for interactive components │
│ • Multi-page application (Homepage, Features, Dashboard) │
└──────────────────────┬──────────────────────────────────────┘
│
↓
┌─────────────────────────────────────────────────────────────┐
│ Node.js Backend (Express.js) │
│ • User authentication & session management │
│ • API routing and middleware │
│ • Image upload handling (Multer) │
│ • AI text enhancement (DeepSeek integration) │
│ • Rate limiting & security (Helmet, CORS) │
└──────────────────────┬──────────────────────────────────────┘
│
↓
┌─────────────────────────────────────────────────────────────┐
│ Python OCR Service (FastAPI + PaddleOCR) │
│ • Handwriting recognition │
│ • Image preprocessing │
│ • Text extraction │
└─────────────────────────────────────────────────────────────┘
Frontend:
- HTML5, CSS3 (Tailwind CSS)
- JavaScript (Vanilla + Alpine.js)
- Flatpickr for date selection
- Responsive, mobile-first design
Backend:
- Node.js + Express.js
- Sequelize ORM with SQLite
- bcrypt for password hashing
- JWT for authentication
- Helmet for security headers
- Morgan + Winston for logging
- Express Rate Limit for API protection
OCR Service:
- Python 3.x
- FastAPI
- PaddleOCR for text recognition
- Image processing libraries
- Node.js (v14 or higher)
- Python (v3.8 or higher)
- npm and pip package managers
-
Clone the repository
git clone https://github.com/yourusername/skribb-ai.git cd skribb-ai -
Install Node.js dependencies
npm install
-
Install Python dependencies
pip install -r python_services/ocr/requirements.txt
-
Set up environment variables
Create a
.envfile in the root directory:# Server Configuration PORT=5500 NODE_ENV=development # AI API Keys (optional, for enhanced features) AI_API_KEY=your_deepseek_api_key_here AI_CODER_API_KEY=your_code_enhancement_api_key_here # Discord Bot (optional) BOT_TOKEN=your_discord_bot_token_here # Security SESSION_SECRET=your_secure_session_secret_here # Frontend URL (for production) FRONTEND_URL=https://yourdomain.com
Runs the backend server, OCR service, and CSS watcher concurrently:
npm run devBackend Server Only:
npm run start:serverOCR Service Only:
npm run start:ocrCSS Watcher (for Tailwind development):
npm run watch:cssOnce running, open your browser and navigate to:
https://skribb.zykro.dev
skribb-ai/
├── pages/ # Frontend HTML pages
│ ├── homepage.html # Landing page
│ ├── features-hub.html # Feature demos
│ ├── get-started.html # Signup/Login
│ ├── dashboard.html # User dashboard
│ ├── how-it-works.html # Tutorial page
│ └── examples.html # Use case examples
├── css/ # Stylesheets
│ ├── main.css # Compiled Tailwind CSS
│ └── tailwind.css # Tailwind source
├── js/ # Frontend JavaScript
│ └── auth.js # Authentication logic
├── src/ # Backend source code
│ ├── controllers/ # Request handlers
│ ├── models/ # Database models (Sequelize)
│ ├── routes/ # API routes
│ ├── middleware/ # Express middleware
│ ├── services/ # Business logic
│ ├── config/ # Configuration files
│ ├── utils/ # Utility functions
│ ├── app.js # Express app setup
│ └── server.js # Server entry point
├── python_services/ # Python microservices
│ └── ocr/ # OCR service
│ ├── main.py # FastAPI server
│ └── requirements.txt # Python dependencies
├── public/ # Static assets
├── uploads/ # User-uploaded files
├── database.sqlite # SQLite database
├── package.json # Node.js dependencies
├── tailwind.config.js # Tailwind configuration
└── README.md # This file
- Content Security Policy (CSP) via Helmet
- Rate limiting to prevent API abuse (100 requests per 15 minutes)
- Password hashing with bcrypt (12 salt rounds)
- JWT-based authentication with secure session management
- Input validation using express-validator
- CORS configuration for cross-origin protection
- File upload limits (15MB max)
- SQL injection protection via Sequelize ORM
- Convert lecture notes into study guides
- Digitize handwritten assignments
- Create searchable note archives
- Summarize long textbook chapters
- Transform meeting scribbles into action items
- Digitize brainstorming sessions
- Create professional reports from rough notes
- Archive handwritten documents
- Extract code from whiteboard photos
- Digitize handwritten algorithms
- Capture code from tutorials
- Document code reviews
npm run build:cssnpm run watch:cssThe application uses SQLite for development. The database file (database.sqlite) is automatically created on first run.
POST /signup- Create new user accountPOST /login- User loginPOST /google-login- Google OAuth loginPOST /logout- User logoutPOST /verify-session- Verify JWT tokenGET /me- Get current user info (requires auth)
POST /api/txt-enhance- Enhance text with AIPOST /api/txt-fix- Fix grammar and spellingPOST /api/code-enhance- Enhance code formattingPOST /api/imagetotext- OCR image to text
Skribb AI is currently in BETA phase.
Some features may not work as expected. We welcome bug reports and feature requests via GitHub Issues.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request