Skip to content

Full-stack note-taking web app using Flask, SQLAlchemy, and OpenAI integration for intelligent text assistance.

Notifications You must be signed in to change notification settings

Keneth-Ravindu/Note-Nova

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 NoteNova

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.

1 2 3 4

✨ Features

  • 🔐 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


🛠️ Tech Stack

Layer Technology
Backend Flask (Python)
Database SQLite + SQLAlchemy
Authentication Flask-Login
Frontend Jinja2 Templates + TailwindCSS
AI Integration OpenAI API
Environment Mgmt python-dotenv

📦 Installation Guide

Follow these steps to run NoteNova locally.


1️⃣ Clone the Repository

git clone https://github.com/yourusername/notenova.git
cd notenova

2️⃣ Create a Virtual Environment

python -m venv venv

Activate it:

Windows

venv\Scripts\activate

macOS/Linux

source venv/bin/activate

3️⃣ Install Required Packages (pip installation)

Install dependencies using pip:

pip install Flask Flask-Login Flask-SQLAlchemy openai python-dotenv Werkzeug

4️⃣ Create Environment File

Create a .env file in the root directory:

OPENAI_API_KEY=your_api_key_here

⚠️ Do NOT upload this file to GitHub.


5️⃣ Run the Application

python main.py

Open your browser and go to:

http://127.0.0.1:5000

🤖 AI Setup (One-Time Configuration)

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.


📁 Project Structure

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
     

🔐 Security Notes

  • API keys are stored only in .env
  • .env is excluded via .gitignore
  • AI requests are processed server-side (never exposed to browser)

🧯 Troubleshooting

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

🚀 Future Improvements

  • AI chat with your notes
  • Semantic search
  • Tag generation
  • Export notes as PDF
  • Cloud deployment (Render / Docker)
  • Collaborative sharing

📄 License

MIT License — free to use, modify, and learn from.


👨‍💻 Author

Developed as a Final Year Computer Science project exploring Flask architecture and AI integration.


⭐ If you like this project, consider giving it a star!

About

Full-stack note-taking web app using Flask, SQLAlchemy, and OpenAI integration for intelligent text assistance.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published