Skip to content

Latest commit

Β 

History

284 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ Nota

AI-Powered Smart Notes & Diary Application

Flutter Firebase Gemini AI Dart License PRs Welcome


🌟 Features β€’ πŸ“¦ Installation β€’ πŸ“Έ Screenshots β€’ πŸ› οΈ Tech Stack β€’ 🀝 Contributing β€’ πŸ“„ Docs


Nota Logo

Transform your thoughts into organized actions with AI ✨


Android iOS Web Windows macOS Linux


🌟 Overview

Nota is a revolutionary AI-powered notes and diary application that transforms how you capture and organize your thoughts. Simply input via text, voice, or camera, and watch as our intelligent AI engine automatically categorizes your content into meaningful sections.

πŸ‡ΈπŸ‡¦ Full Arabic RTL Support - Designed with Arabic users in mind, featuring beautiful Tajawal fonts and right-to-left layouts.

🎯 What Makes Nota Special?

πŸ€– AI-Powered Intelligence

Automatically categorizes notes using Gemini 2.5 Flash - Google's latest AI model. Just type naturally and let AI do the organizing.

🎀 Multi-Input Support

Input via text, voice recording, or camera capture. Perfect for capturing thoughts on the go.

πŸ“Š Smart Organization

Automatically sorts into Tasks, Appointments, Expenses, and Personal Notes with smart extraction of dates, amounts, and priorities.

πŸ” Secure Authentication

6 login methods: Email, Google, Facebook, GitHub, Apple, and Biometric (Fingerprint/Face ID).

πŸŒ™ Beautiful Modern UI

Sleek design with smooth animations, haptic feedback, and Material 3 design language.

☁️ Real-time Cloud Sync

All data synced with Firebase in real-time. Access from any device, anytime.


✨ Features

πŸ“± Core Features


πŸ“ Smart Notes
Create notes that are automatically categorized by AI

βœ… Tasks & To-Dos
Manage tasks with priorities, due dates, and subtasks

πŸ“… Appointments
Schedule and track with calendar integration

πŸ’° Expense Tracking
Log expenses with categories and amounts

πŸ” Smart Search
Find anything instantly with intelligent search

πŸ“Š Dashboard
Beautiful overview of all your content

πŸ” Authentication Methods

Method Status Description
βœ‰οΈ Email/Password βœ… Traditional email authentication with verification
πŸ”΅ Google βœ… One-tap Google Sign-In
πŸ“˜ Facebook βœ… Facebook OAuth integration
πŸ™ GitHub βœ… GitHub OAuth for developers
🍎 Apple βœ… Sign in with Apple (iOS/macOS)
πŸ‘† Biometric βœ… Fingerprint & Face ID support

🎀 Smart Input Methods

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                 β”‚
β”‚   ⌨️ TEXT          πŸŽ™οΈ VOICE         πŸ“· CAMERA        πŸ–ΌοΈ GALLERY  β”‚
β”‚   ──────          ─────          ──────        ───────  β”‚
β”‚   Type your       Speak and      Capture       Import   β”‚
β”‚   thoughts        transcribe     receipts      images   β”‚
β”‚   naturally       instantly      & docs        for AI   β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ€– AI Capabilities (Gemini 2.5 Flash)

Capability Description
🏷️ Auto-Categorization Notes β†’ Tasks, Appointments, Expenses, or Personal
πŸ“… Date Extraction Automatically detects dates like "ΨΊΨ―Ψ§Ω‹" or "next Monday"
πŸ’΅ Amount Detection Extracts currency and amounts from text
⚑ Priority Analysis Detects urgency from context
🌍 Bilingual Support Understands Arabic & English naturally
🧠 Context Awareness Learns from your usage patterns

πŸ“Έ Screenshots

πŸ” Authentication Flow

Splash Screen Login Register Forgot Password

πŸ“± Main App

Dashboard AI Input Tasks Appointments Quotes Track Money

πŸ› οΈ Tech Stack

Frontend & UI

Technology Version Purpose
Flutter 3.3+ Cross-platform UI framework
Dart 3.0+ Programming language
Material 3 Latest Design system
Google Fonts - Tajawal Arabic font

Backend & Cloud Services

Technology Purpose
Firebase Auth Multi-provider authentication
Firestore Real-time NoSQL database
Firebase Storage Image & file storage
Cloudinary Media management CDN

AI & Machine Learning

Technology Model Purpose
Gemini 2.5 Flash AI categorization & extraction
Speech to Text - Voice transcription

Key Packages

dependencies:
  # Firebase Suite
  firebase_core: ^3.8.0
  firebase_auth: ^5.3.3
  cloud_firestore: ^5.5.0
  firebase_storage: ^12.4.10
  
  # Social Authentication
  google_sign_in: ^6.2.2
  flutter_facebook_auth: ^7.1.1
  local_auth: ^2.3.0  # Biometric
  
  # AI Integration
  google_generative_ai: ^0.4.7
  speech_to_text: ^7.3.0
  
  # UI & Animations
  flutter_animate: ^4.5.0
  lottie: ^3.1.3
  google_fonts: ^6.3.0
  
  # Media & Input
  camera: ^0.10.3
  image_picker: ^1.1.1

πŸ“¦ Installation

πŸ“‹ Prerequisites
  • βœ… Flutter SDK 3.3.0 or higher
  • βœ… Dart SDK 3.0.0 or higher
  • βœ… Android Studio / VS Code with Flutter extensions
  • βœ… Firebase account (free tier works)
  • βœ… Gemini API key (Get free key)
  • βœ… Git installed

πŸš€ Quick Start

# 1️⃣ Clone the repository
git clone https://github.com/Lord-shaban/Nota.git
cd nota

# 2️⃣ Install dependencies
flutter pub get

# 3️⃣ Run the app
flutter run

βš™οΈ Full Setup Guide

Step 1: Firebase Configuration
  1. Create a project at Firebase Console
  2. Enable these services:
    • βœ… Authentication (Email, Google, Facebook, GitHub, Apple)
    • βœ… Cloud Firestore
    • βœ… Firebase Storage
  3. Download configuration files:
    android/app/google-services.json     # Android
    ios/Runner/GoogleService-Info.plist  # iOS
    
Step 2: Gemini AI Setup
  1. Get API key from Google AI Studio
  2. Create .env file in root directory:
    GEMINI_API_KEY=your_api_key_here
Step 3: Social Auth Setup

See πŸ“„ SOCIAL_AUTH_SETUP.md for detailed instructions:

Provider Setup Link
πŸ”΅ Google Google Cloud Console
πŸ“˜ Facebook Facebook Developers
πŸ™ GitHub GitHub OAuth Apps
🍎 Apple Apple Developer
Step 4: Run on Different Platforms
# πŸ“± Android
flutter run -d android

# 🍎 iOS
flutter run -d ios

# 🌐 Web
flutter run -d chrome

# πŸ–₯️ Desktop (Windows/macOS/Linux)
flutter run -d windows
flutter run -d macos
flutter run -d linux

# πŸš€ Release Build
flutter build apk --release        # Android APK
flutter build appbundle --release  # Android App Bundle
flutter build ios --release        # iOS
flutter build web --release        # Web

πŸ“ Project Structure

nota/
β”‚
β”œβ”€β”€ πŸ“± lib/                           # Main source code
β”‚   β”œβ”€β”€ main.dart                     # App entry point
β”‚   β”œβ”€β”€ firebase_options.dart         # Firebase configuration
β”‚   β”‚
β”‚   β”œβ”€β”€ 🎨 core/                      # Core utilities
β”‚   β”‚   β”œβ”€β”€ models/                   # Data models (UserModel, NoteModel, etc.)
β”‚   β”‚   β”œβ”€β”€ theme/                    # App theme & colors
β”‚   β”‚   └── utils/                    # Helper functions
β”‚   β”‚
β”‚   └── ⚑ features/                   # Feature modules
β”‚       β”‚
β”‚       β”œβ”€β”€ πŸ” auth/                  # Authentication
β”‚       β”‚   β”œβ”€β”€ login/                # Enhanced login screen
β”‚       β”‚   β”œβ”€β”€ register/             # Registration with password strength
β”‚       β”‚   β”œβ”€β”€ splash/               # Animated splash screen
β”‚       β”‚   β”œβ”€β”€ services/             # AuthService, SocialAuthService
β”‚       β”‚   └── widgets/              # Reusable auth widgets
β”‚       β”‚
β”‚       β”œβ”€β”€ 🏠 dashboard/             # Home dashboard
β”‚       β”‚   β”œβ”€β”€ home_screen.dart      # Main dashboard
β”‚       β”‚   └── widgets/              # Dashboard widgets
β”‚       β”‚
β”‚       β”œβ”€β”€ πŸ“ notes/                 # Notes feature
β”‚       β”‚   β”œβ”€β”€ screens/              # Note list & detail screens
β”‚       β”‚   └── widgets/              # Note cards & forms
β”‚       β”‚
β”‚       β”œβ”€β”€ βœ… tasks/                  # Tasks feature
β”‚       β”‚   β”œβ”€β”€ screens/              # Task management screens
β”‚       β”‚   └── widgets/              # Task widgets
β”‚       β”‚
β”‚       └── πŸ€– ai/                    # AI integration
β”‚           β”œβ”€β”€ ai_input_screen.dart  # Smart AI input
β”‚           └── services/             # Gemini AI service
β”‚
β”œβ”€β”€ πŸ€– android/                       # Android platform
β”œβ”€β”€ 🍎 ios/                           # iOS platform
β”œβ”€β”€ 🌐 web/                           # Web platform
β”œβ”€β”€ πŸ–₯️ windows/                       # Windows desktop
β”œβ”€β”€ πŸ–₯️ macos/                         # macOS desktop
β”œβ”€β”€ 🐧 linux/                         # Linux desktop
β”‚
β”œβ”€β”€ πŸ§ͺ test/                          # Tests
β”‚   β”œβ”€β”€ unit/                         # Unit tests
β”‚   β”œβ”€β”€ widget/                       # Widget tests
β”‚   └── integration/                  # Integration tests
β”‚
β”œβ”€β”€ πŸ“š docs/                          # Documentation
β”‚   β”œβ”€β”€ AUTH_SYSTEM_README.md
β”‚   β”œβ”€β”€ SOCIAL_AUTH_SETUP.md
β”‚   └── TASKS_FEATURE.md
β”‚
└── πŸ“„ Configuration Files
    β”œβ”€β”€ pubspec.yaml                  # Dependencies
    β”œβ”€β”€ analysis_options.yaml         # Lint rules
    └── firebase.json                 # Firebase config

πŸ§ͺ Testing

Test Type Command Description
πŸ”¬ Unit flutter test test/unit/ Test business logic
🧩 Widget flutter test test/widget/ Test UI components
πŸ”— Integration flutter test integration_test/ Test full flows
πŸ“Š Coverage flutter test --coverage Generate coverage report
# Run all tests
flutter test

# Run with verbose output
flutter test --reporter expanded

# Run specific test file
flutter test test/unit/auth_service_test.dart

# Generate coverage report
flutter test --coverage
genhtml coverage/lcov.info -o coverage/html
open coverage/html/index.html

🀝 Contributing

We love contributions! Here's how to get started:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     CONTRIBUTION FLOW                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                            β”‚
β”‚   1️⃣ Fork  β†’  2️⃣ Clone  β†’  3️⃣ Branch  β†’  4️⃣ Code  β†’  5️⃣ PR   β”‚
β”‚                                                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Step by Step

  1. πŸ“– Read CONTRIBUTING.md
  2. 🍴 Fork the repository
  3. 🌿 Create feature branch:
    git checkout -b feature/amazing-feature
  4. πŸ’Ύ Make changes and commit:
    git commit -m 'feat: add amazing feature'
  5. πŸ“€ Push to your fork:
    git push origin feature/amazing-feature
  6. πŸ”ƒ Open a Pull Request

πŸ“‹ Commit Convention

We follow Conventional Commits:

Emoji Type Description
✨ feat: New feature
πŸ› fix: Bug fix
πŸ“š docs: Documentation
πŸ’„ style: UI/styling changes
♻️ refactor: Code refactoring
πŸ§ͺ test: Adding tests
πŸ”§ chore: Maintenance
⚑ perf: Performance improvement

πŸ‘₯ Team


Lord-shaban
🎯 Project Lead

GoldenBoy13420
πŸ’» Developer

Ali-0110
πŸ’» Developer

abdelrahman hesham
πŸ’» Developer

πŸ“„ Documentation

πŸ“š Document πŸ“ Description
πŸ” AUTH_SYSTEM_README Complete authentication system documentation
🌐 SOCIAL_AUTH_SETUP Setup guide for Google, Facebook, GitHub, Apple
βœ… TASKS_FEATURE Tasks & to-dos feature documentation
πŸ“… ENHANCED_TASKS_SUMMARY Enhanced tasks with subtasks & priorities
πŸ€– AI_TESTING AI testing guidelines & examples
🀝 CONTRIBUTING Contribution guidelines
πŸ”’ SECURITY Security policies & vulnerability reporting
πŸ“œ CODE_OF_CONDUCT Community code of conduct

πŸ”’ Security

Your security is our priority. Please read SECURITY.md for:

  • 🚨 Reporting vulnerabilities
  • πŸ” Security best practices
  • πŸ›‘οΈ Data protection policies
  • πŸ”‘ Authentication security measures

πŸ—ΊοΈ Roadmap

Phase Feature Status
βœ… Core authentication system Done
βœ… Social login (Google, Facebook, GitHub, Apple) Done
βœ… Biometric authentication Done
βœ… AI-powered note categorization Done
βœ… Voice input & transcription Done
βœ… Camera & image input Done
βœ… Enhanced UI with animations Done
πŸ”„ Offline mode with sync In Progress
πŸ“‹ Widgets for home screen Planned
πŸ“‹ Apple Watch / Wear OS support Planned
πŸ“‹ Desktop native features Planned
πŸ“‹ AI-powered suggestions Planned

πŸ“‹ Project Board

Track our progress and upcoming features:

GitHub Project


πŸ“œ License

This project is licensed under the MIT License

License: MIT

MIT License

Copyright (c) 2024-2026 Nota Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

⭐ Support

If you find Nota helpful, please give it a star!

It helps us grow and motivates the team to keep improving.


GitHub stars GitHub forks GitHub watchers


Nota Logo

Made with ❀️ by the Nota Team

Transform your thoughts. Organize your life.


Flutter Firebase Gemini

About

Smart AI-powered notes & diary app built with Flutter and Firebase. Features intelligent categorization, multi-input system, and seamless authentication with Arabic support.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages