OCR-enhanced notetaking for the masses
WriteWise is a Flask-based web application that lets users create, edit, and organise rich-text documents in a simple, folder-based interface. Built with students and writers in mind, it also features image-to-text transcription to bridge the gap between physical and digital notes.
This project was developed as part of my A-Level Computer Science course in early 2025.
- 🔐 User Authentication – Secure registration and login with password hashing.
- 🗂️ File Explorer – Create, manage and organise documents in folders.
- 🖋️ WYSIWYG Editor – Rich-text editing with formatting tools (bold, italics, colour, lists, etc.).
- 📷 Image Transcription – Upload images of text to convert them to editable HTML (powered by Tesseract OCR).
⚠️ XSS Protection – Editor sanitises pasted content to prevent script injection.
Some features were planned but not fully implemented:
- 🔒 Document encryption (files are currently stored as plaintext)
- 📤 Export to file (PDF/Word)
- 🧠 Improved handwritten text recognition via neural networks or better OCR models
- 🖨️ Print preview layout
- 🎨 CSS (to improve the overall aesthetics of the website)
- Clone the repo
git clone https://github.com/abubakar179/WriteWise.git cd writewise - Create virtual environment
python -m venv venv source venv/bin/activate # or `venv\Scripts\activate` on Windows
- Install dependencies
pip install -r requirements.txt
- Create SQLite database
python3 create.py
- PLEASE SET A SECRET KEY - generate a UUID and paste it into app.py
app = Flask(__name__) app.secret_key = "INSERT KEY HERE" pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
- Install Tesseract The default path in app.py is the default Windows folder that Tesseract is stored. In order to install Tesseract, please use the binaries at https://github.com/UB-Mannheim/tesseract
- Start Flask web server (By default, the app runs at http://0.0.0.0:5000/.)
python3 app.py