AI-Powered Notes App built with Flask
NoteNova is a modern, full-stack note-taking web application that combines secure user authentication, persistent storage, and AI assistance to help you write, organize, and refine ideas faster.
-
🔐 User Authentication (Sign Up / Login / Logout)
-
📝 Create, view, and delete personal notes
-
💾 SQLite database with SQLAlchemy ORM
-
🎨 Modern responsive UI (TailwindCSS)
-
🗑️ Animated delete confirmation + undo support
-
🤖 AI Tools:
- Summarize notes
- Rewrite notes for clarity
- Generate titles instantly
-
🔒 Secure API key handling using environment variables (
.env) -
🖼️ Custom NoteNova logo + favicon branding
| Layer | Technology |
|---|---|
| Backend | Flask (Python) |
| Database | SQLite + SQLAlchemy |
| Authentication | Flask-Login |
| Frontend | Jinja2 Templates + TailwindCSS |
| AI Integration | OpenAI API |
| Environment Mgmt | python-dotenv |
Follow these steps to run NoteNova locally.
git clone https://github.com/yourusername/notenova.git
cd notenovapython -m venv venvActivate it:
Windows
venv\Scripts\activatemacOS/Linux
source venv/bin/activateInstall dependencies using pip:
pip install Flask Flask-Login Flask-SQLAlchemy openai python-dotenv WerkzeugCreate a .env file in the root directory:
OPENAI_API_KEY=your_api_key_here
python main.pyOpen your browser and go to:
http://127.0.0.1:5000
To use AI features, your OpenAI account must have billing enabled.
If you see this error:
429 insufficient_quota
Go to: https://platform.openai.com/settings/billing
Add a payment method and restart the app.
notenova/
│
├── main.py
├── .env # API key (ignored by Git)
├── .gitignore
│
└── website/
├── __init__.py
├── models.py
├── views.py
├── auth.py
├── ai.py
│
├── templates/
│ ├── base.html
│ ├── home.html
│ ├── login.html
│ └── sign_up.html
│
└── static/
└── index.js
- API keys are stored only in
.env .envis excluded via.gitignore- AI requests are processed server-side (never exposed to browser)
| Problem | Fix |
|---|---|
| AI not responding | Restart Flask after editing .env |
| Database not created | Delete database.db and rerun app |
| Invalid API key | Verify key in .env |
| Quota exceeded | Enable billing in OpenAI dashboard |
- AI chat with your notes
- Semantic search
- Tag generation
- Export notes as PDF
- Cloud deployment (Render / Docker)
- Collaborative sharing
MIT License — free to use, modify, and learn from.
Developed as a Final Year Computer Science project exploring Flask architecture and AI integration.
⭐ If you like this project, consider giving it a star!