Skip to content

doaa153/Notes-App

Repository files navigation

Notes App 📝

A beautiful and intuitive notes application built with Flutter, featuring modern UI design and robust state management.

✨ Features

Core Functionality

  • 📝 Add Notes - Create new notes with title and content
  • ✏️ Edit Notes - Update existing notes seamlessly
  • 🗑️ Delete Notes - Remove notes with a simple tap
  • 💾 Auto-Save - All changes are automatically saved locally

Technical Features

  • 🎨 Beautiful UI - Modern dark theme with smooth animations
  • 🚀 Splash Screen - Animated welcome screen with typewriter effect
  • 📱 Responsive Design - Optimized for different screen sizes
  • 🔄 State Management - Powered by Flutter Bloc/Cubit
  • 💿 Local Storage - Persistent data storage with Hive database

🏗️ Architecture

The app follows Clean Architecture principles with separation of concerns:

lib/
├── constants.dart              # App constants
├── main.dart                  # App entry point
├── models/
│   ├── note_model.dart        # Note data model
│   └── note_model.g.dart      # Generated Hive adapter
├── cubits/
│   ├── add_note_cubit/        # Add note state management
│   └── notes_cubit/           # Notes list state management
├── screens/
│   ├── splash_screen.dart     # Welcome screen
│   ├── notes_screen.dart      # Main notes list
│   └── edit_note_screen.dart  # Note editing interface
└── widgets/
    ├── bottom_sheet_widget.dart    # Add note modal
    ├── custom_button_widget.dart   # Reusable button
    ├── custom_text_field.dart      # Custom input field
    ├── note_item.dart              # Individual note widget
    └── note_list_view.dart         # Notes list display

🛠️ Technologies Used

  • Flutter - UI framework
  • Dart - Programming language
  • Flutter Bloc/Cubit - State management solution
  • Hive - Fast, lightweight NoSQL database
  • Animated Text Kit - Text animations for splash screen
  • Modal Progress HUD - Loading indicators

📦 Dependencies

dependencies:
  flutter:
    sdk: flutter
  flutter_bloc: ^8.1.3
  hive: ^2.2.3
  hive_flutter: ^1.1.0
  animated_text_kit: ^4.2.2
  modal_progress_hud_nsn: ^0.4.0

dev_dependencies:
  hive_generator: ^2.0.0
  build_runner: ^2.4.6

🚀 Getting Started

Prerequisites

  • Flutter SDK (latest stable version)
  • Dart SDK
  • Android Studio / VS Code
  • Android/iOS device or emulator

🎯 Key Features Explained

1. Add Notes

  • Tap the floating action button to open the add note modal
  • Fill in the title and content fields
  • Notes are automatically timestamped
  • Real-time validation ensures required fields are completed

2. View Notes

  • All notes are displayed in a beautiful card-based layout
  • Each note shows title, content preview, and creation date
  • Smooth scrolling with optimized performance

3. Edit Notes

  • Tap any note to open the edit screen
  • Make changes to title and content
  • Auto-save functionality preserves your edits
  • Navigate back to see updates immediately

4. Delete Notes

  • Use the delete button on each note card
  • Instant removal with automatic list refresh
  • No confirmation dialog for quick deletion

🔧 State Management

The app uses Cubit pattern for state management:

AddNoteCubit

  • Handles note creation logic
  • Manages loading states during save operations
  • Provides error handling for failed operations

NotesCubit

  • Manages the list of all notes
  • Handles data retrieval from Hive database
  • Updates UI when notes are added, edited, or deleted

💾 Data Persistence

Hive Database is used for local storage:

  • Fast, lightweight NoSQL database
  • Type-safe with generated adapters
  • Perfect for offline-first applications
  • Automatic data serialization/deserialization

About

Capture your thoughts, anytime

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors