Skip to content

๐Ÿ“ธ SnapNote โ€“ AI-Powered Handwritten Note Extractor. SnapNote is an intelligent web application that helps users digitize and organize handwritten notes.

Notifications You must be signed in to change notification settings

Ihssane5/SnapNotes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ธ SnapNote โ€“ AI-Powered Handwritten Note Extractor

SnapNote is an intelligent web application that helps users digitize and organize handwritten notes. With just a photo, SnapNote extracts handwritten text using advanced AI models and classifies the content into meaningful categories โ€“ making your notes searchable, organized, and easy to manage.


๐Ÿš€ Features

  • ๐Ÿ“ท Upload Handwritten Notes
    Snap a photo or upload scanned handwritten notes directly through the web app.

  • ๐Ÿง  Text Extraction with Florence
    Uses Microsoft's state-of-the-art multimodal model microsoft/Florence-2-base to extract text from handwritten images.

  • ๐Ÿท๏ธ Smart Categorization
    Applies zero-shot classification using facebook/bart-large-mnli to assign relevant tags (e.g., Math, To-Do, Personal, Science, etc.) to the extracted content.

  • ๐Ÿ—ƒ๏ธ Organized Output
    Automatically presents and groups your notes under categorized tags.


๐Ÿง  AI Models Used

1. โœ๏ธ Text Extraction

2. ๐Ÿท๏ธ Zero-Shot Classification

from transformers import pipeline

zero_shot_classifier = pipeline(
    "zero-shot-classification",
    model="facebook/bart-large-mnli"
)

result = zero_shot_classifier(
    "Finish the physics assignment on Newtonโ€™s laws.",
    candidate_labels=["To-Do", "Science", "Math", "Personal"]
)

๐Ÿ–ฅ๏ธ Demo

๐ŸŽฅ Video Demo

Watch our live demo and walkthrough on Drive

๐Ÿ–ผ๏ธ Interface Preview

SnapNote Homepage

SnapNote Services


๐Ÿ› ๏ธ Tech Stack

Frontend

  • HTML
  • CSS
  • JavaScript

Backend

  • Python
  • Flask (used for API endpoints and model integration)

AI Models

Model Integration

  • Hugging Face Transformers
  • Served locally via Flask

Storage

  • Local file system for storing uploaded images and processed notes

๐Ÿ“ฆ Installation

To run SnapNote locally, follow these steps:

1. Clone the repository

git clone https://github.com/Ihssane5/SnapNotes

2. Navigate to the folder

cd snapnote

3. Create and activate the Conda environment

Make sure you have Conda installed. Then run:

conda env create -f environment.yaml -n notes
conda activate notes

This will create and activate a virtual environment named notes using the packages listed in your environment.yaml file.

4. Run the application

Once the environment is activated:

python app.py

The app should now be accessible in your browser at http://localhost:5000.


๐Ÿงฉ Example Use Case

  1. User uploads a handwritten note image.
  2. The app extracts text using Florence.
  3. The extracted text is classified into tags like "To-Do", "Science", or "Personal" using BART-MNLI.
  4. Notes are displayed and grouped under these categories for easy access.

๐Ÿšง Future Enhancements

  • Improve OCR post-processing to enhance accuracy on low-quality scans.
  • Enable custom tag suggestions using user history.
  • Build mobile app version with real-time capture.
  • Add user authentication and personalized dashboards.

๐Ÿ‘ฉโ€๐Ÿ’ป Contributors

  • Ihssane Nedjaoui
  • Other Contributors

๐Ÿ“œ License

This project is licensed under the MIT License. See LICENSE for details.


๐Ÿ“ฌ Contact

For support or inquiries: ihssanenedjaoui5@gmail.com

About

๐Ÿ“ธ SnapNote โ€“ AI-Powered Handwritten Note Extractor. SnapNote is an intelligent web application that helps users digitize and organize handwritten notes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published