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.
-
๐ท 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 modelmicrosoft/Florence-2-baseto extract text from handwritten images. -
๐ท๏ธ Smart Categorization
Applies zero-shot classification usingfacebook/bart-large-mnlito 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.
- Model:
microsoft/Florence-2-base - Task: Image-to-text extraction for digitizing handwritten notes.
- Model:
facebook/bart-large-mnli - Task: Assigning semantic categories to notes without needing task-specific training.
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"]
)Watch our live demo and walkthrough on Drive
- HTML
- CSS
- JavaScript
- Python
- Flask (used for API endpoints and model integration)
microsoft/Florence-2-basefor handwriting text extractionfacebook/bart-large-mnlifor zero-shot classification
- Hugging Face Transformers
- Served locally via Flask
- Local file system for storing uploaded images and processed notes
To run SnapNote locally, follow these steps:
git clone https://github.com/Ihssane5/SnapNotes
cd snapnote
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.
Once the environment is activated:
python app.py
The app should now be accessible in your browser at http://localhost:5000.
- User uploads a handwritten note image.
- The app extracts text using Florence.
- The extracted text is classified into tags like "To-Do", "Science", or "Personal" using BART-MNLI.
- Notes are displayed and grouped under these categories for easy access.
- 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.
- Ihssane Nedjaoui
- Other Contributors
This project is licensed under the MIT License. See LICENSE for details.
For support or inquiries: ihssanenedjaoui5@gmail.com

