Skip to content

Inv-Wolve/Skribb-AI-Notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Skribb AI

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.


✨ Features

🖊️ Smart Transcription

  • 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

✅ Grammar Enhancement

  • 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

📊 Intelligent Summarization

  • 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

💻 Code Recognition

  • 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

🔐 Secure Authentication

  • User registration and login with bcrypt password hashing
  • Google OAuth integration
  • JWT-based session management
  • Secure password validation and duplicate checking

🏗️ Architecture

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                                          │
└─────────────────────────────────────────────────────────────┘

Technology Stack

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

🚀 Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • Python (v3.8 or higher)
  • npm and pip package managers

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/skribb-ai.git
    cd skribb-ai
  2. Install Node.js dependencies

    npm install
  3. Install Python dependencies

    pip install -r python_services/ocr/requirements.txt
  4. Set up environment variables

    Create a .env file 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

Running the Application

Option 1: Full Development Environment (Recommended)

Runs the backend server, OCR service, and CSS watcher concurrently:

npm run dev

Option 2: Individual Services

Backend Server Only:

npm run start:server

OCR Service Only:

npm run start:ocr

CSS Watcher (for Tailwind development):

npm run watch:css

Accessing the Application

Once running, open your browser and navigate to:

https://skribb.zykro.dev

📁 Project Structure

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

🔒 Security Features

  • 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

🎯 Use Cases

For Students

  • Convert lecture notes into study guides
  • Digitize handwritten assignments
  • Create searchable note archives
  • Summarize long textbook chapters

For Professionals

  • Transform meeting scribbles into action items
  • Digitize brainstorming sessions
  • Create professional reports from rough notes
  • Archive handwritten documents

For Developers

  • Extract code from whiteboard photos
  • Digitize handwritten algorithms
  • Capture code from tutorials
  • Document code reviews

🛠️ Development

Building CSS

npm run build:css

Watching CSS Changes

npm run watch:css

Database

The application uses SQLite for development. The database file (database.sqlite) is automatically created on first run.


📝 API Endpoints

Authentication

  • POST /signup - Create new user account
  • POST /login - User login
  • POST /google-login - Google OAuth login
  • POST /logout - User logout
  • POST /verify-session - Verify JWT token
  • GET /me - Get current user info (requires auth)

AI Features

  • POST /api/txt-enhance - Enhance text with AI
  • POST /api/txt-fix - Fix grammar and spelling
  • POST /api/code-enhance - Enhance code formatting
  • POST /api/imagetotext - OCR image to text

⚠️ Current Status

Skribb AI is currently in BETA phase.

Some features may not work as expected. We welcome bug reports and feature requests via GitHub Issues.


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📧 Support

For support, please open an issue on GitHub or contact me at contact@zykro.dev

About

Skribb AI, your favourite AI note manager. For students, professionals and even developers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors