Skip to content

Bawoh1/cw3

Repository files navigation

Flutter Task Management App — CW-03

A stateful Flutter app backed by Firebase Firestore with full CRUD operations on a real-time synchronized task list, including nested subtasks.

Enhanced Features

1. Real-Time Search / Filter

A search bar at the top of the task list filters tasks by title in real time as the user types. The filter is applied client-side on the streamed list, so it is instant with no extra Firestore reads. Clearing the search restores the full list immediately.

2. Dark Mode Support

The app uses ThemeMode.system in MaterialApp, so it automatically switches between light and dark themes based on the device's system setting. Both themes use Material 3 with a consistent deep-purple color scheme. No extra user interaction is required.

Setup Instructions

Prerequisites

  • Flutter SDK (3.x or later)
  • Dart SDK
  • A Firebase project with Firestore enabled
  • FlutterFire CLI: dart pub global activate flutterfire_cli

Steps

  1. Clone the repository

    git clone <your-repo-url>
    cd task_manager
  2. Configure Firebase

    flutterfire configure

    This generates lib/firebase_options.dart linked to your Firebase project.

  3. Enable Firestore

  4. Install dependencies

    flutter pub get
  5. Run the app

    flutter run
  6. Build APK

    flutter build apk --release

    The APK will be at build/app/outputs/flutter-apk/app-release.apk

Folder Structure

lib/
├── main.dart                  # App entry point, Firebase init, theme setup
├── firebase_options.dart      # Auto-generated by FlutterFire CLI
├── models/
│   └── task.dart              # Task data model with toMap, fromMap, copyWith
├── services/
│   └── task_service.dart      # All Firestore CRUD operations
├── screens/
│   └── task_list_screen.dart  # Main screen with StreamBuilder + search
└── widgets/
    └── task_card.dart         # Expandable task card with subtask support

Known Limitations

  • No user authentication — all users share the same Firestore collection
  • Firestore security rules are in development mode (open read/write); tighten before production use
  • Search filters only by task title, not subtask content
  • Due date input uses a date picker only (no time selection)
  • No offline persistence enabled (tasks require a network connection to load)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors