Skip to content

A simple Flutter app with offline category classification ML model for efficient Note management

License

Notifications You must be signed in to change notification settings

Kalana-S/Notes-App

Repository files navigation

📝 Smart Notes App (Flutter)

Smart Notes is an enhanced cross-platform note-taking application built using Flutter, featuring an offline Machine Learning–powered Auto Categorization system.
Users can create, view, update, and delete notes — all stored locally using SQLite (sqflite).
The app also supports Light / Dark themes and an integrated on-device ML prediction engine for real-time category suggestions.


🚀 Features (Core Features)

  • Full CRUD Support

    • Create notes with title and content.
    • Update and edit existing notes.
    • Delete notes with confirmation prompts.
    • View detailed note information
  • Local Offline Database

    • Uses sqflite for local data storage.
    • App works fully offline including ML category prediction.
  • Modern Material Design

    • Simple, responsive, and intuitive Material Design interface.
    • Smooth navigation between screens.
  • Dark & Light Themes

    • Toggle between dark and light themes for comfortable use anytime.

🤖 Machine Learning: Offline Auto Categorization

The app includes an AI-powered category prediction system that automatically detects the most suitable category for a note based on its title and content.

How the offline ML works

  • A TensorFlowLite model was exported to a lightweight JSON-based format.
  • Tokenization uses a locally stored vocabulary (vocab.json)
  • The model is loaded once at app startup and kept in memory
  • Prediction is done entirely in Dart (no API calls)

Supported Categories

  • Finance
  • Ideas
  • Personal
  • Study
  • Work

UI Behavior

  • When typing a new note, the app displays:

    • Auto predicted category
    • Optionally, user can manually override using dropdown
  • In Update Note screen:

    • Auto category updates live
    • Dropdown tracks prediction unless manually changed

📱 Screens

Screen Description
🏠 Home Screen Shows all saved notes with category and preview.
Add Note Screen Create notes + offline ML Auto Category.
📝 Update Note Screen Edit notes with live category re-prediction.
📖 Note Detail Screen View note content + edit button.

🛠️ Technologies Used

App

  • Flutter (Dart)

Database

  • sqflite

Machine Learning

  • Offline text classification nural network model (TensorFlowLite)
  • Local vocabulary / tokenizer
  • Dart-based inference logic (no cloud, no API)

Tools

  • Android Studio
  • VS Code
  • Google Colab
  • Flutter SDK

📦 Installation & Setup

  1. Clone this repository:
    git clone https://github.com/Kalana-S/Notes-App.git
    cd Notes-App
    
  2. Get all dependencies:
    flutter pub get
    
  3. Run the app:
    flutter run
    
  4. (Optional) Build a release APK:
    flutter build apk --release
    

💡 Usage

  1. Tap the Add (+) button to create a new note.
  2. Enter your note title and content, then save.
  3. The app shows Auto Category (offline ML)
  4. Optionally override category from dropdown
  5. Use the Edit (✏️) and Delete (🗑️) buttons to manage notes.
  6. Switch between Light and Dark modes from the app theme settings.

📸 Screenshots

Home Screen

Light Mode Dark Mode

Add Note Screen (with ML Auto Category)

Light Mode Dark Mode

Update Note Screen (with ML Auto Category)

Light Mode Dark Mode

Note Detail Screen

Light Mode Dark Mode

🤝 Contribution

Contributions are welcome! If you'd like to improve the project, feel free to fork the repository and submit a pull request.


📜 License

This project is open-source and available under the MIT License.


💡 Developed with passion using Flutter, Dart!