Skip to content

EarnGH/kanban

Repository files navigation

Local Kanban Board (Flutter + Firebase)

A Trello-style Kanban board built in Flutter using Firebase Authentication and Cloud Firestore.
Users can create projects, manage columns (To-Do / Doing / Done), create tasks, reorder tasks via drag-and-drop, edit descriptions and due dates, and sync everything in real time through Firebase.

This project is created for the Mobile Application course assignment.


Features

  • Firebase Authentication (Email/Password auto-login)
  • Real-time Firestore sync for projects, columns, and tasks
  • Drag-and-drop reordering (within the same column and across columns)
  • Create / rename / delete columns
  • Create / edit / delete tasks
  • Task description + due date editor (bottom sheet)
  • Riverpod for state management
  • GoRouter for navigation
  • Works on Web (Chrome), Android emulator, and physical Android devices

Demo Firebase Login

The app automatically signs in using this test account:

Email: [email protected]
Password: yourSecurePassword123

This account already exists in the Firebase project.

The sign-in is performed inside main.dart:

await FirebaseAuth.instance.signInWithEmailAndPassword(
  email: '[email protected]',
  password: 'yourSecurePassword123',
);

No login screen is required.


How to Run the App

1. Install Flutter

Flutter 3.19+ is required.

Check your Flutter version:

flutter --version

2. Clone the Repository

git clone <your-repo-url>
cd <your-project-folder>

3. Install Dependencies

flutter pub get

4. Run the App

On Chrome (recommended):

flutter run -d chrome

On Android emulator:

flutter run

The app will automatically sign in and load data from Firestore.


Firebase Setup (Already Included)

No setup required.

This project already contains:

  • firebase_options.dart
  • google-services.json
  • Email/Password Authentication enabled
  • Cloud Firestore enabled
  • The test user account
  • Correct Firestore rules

Everything is ready to run immediately.


Firestore Security Rules (Current)

This project uses the following Firestore rule:

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

This allows any authenticated user to read/write.
Since the app signs in automatically, all Firestore operations work out of the box.


Project Structure

lib/
│
├─ main.dart                # Firebase init, auto-login, routing
├─ pages/
│    ├─ projects.dart       # Project list page (Firestore stream)
│    └─ board.dart          # Kanban board (Firestore listeners)
│
└─ firebase_options.dart     # Generated by flutterfire configure

Key Functionalities

Projects Page

  • Loads using Firestore stream
  • Add new projects
  • Delete projects
  • Navigate to a project's board

Board Page

  • Live Firestore listeners for columns and tasks
  • Drag-and-drop tasks (within/across columns)
  • Reorder columns
  • Add / rename / delete columns
  • Add / edit / delete tasks
  • Edit title, description, and due dates for tasks

For the Instructor / Reviewer

To run the app:

flutter pub get
flutter run -d chrome # or use any android emulator

Firebase is already configured and the app will automatically log in using the test account.

No extra setup required.


(Optional) Additional Sections

You may add:

  • Screenshots
  • Demo video
  • Future improvements
  • Known issues / limitations

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published