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.
- 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
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.
Flutter 3.19+ is required.
Check your Flutter version:
flutter --version
git clone <your-repo-url>
cd <your-project-folder>
flutter pub get
On Chrome (recommended):
flutter run -d chrome
On Android emulator:
flutter run
The app will automatically sign in and load data from Firestore.
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.
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.
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
- Loads using Firestore stream
- Add new projects
- Delete projects
- Navigate to a project's board
- 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
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.
You may add:
- Screenshots
- Demo video
- Future improvements
- Known issues / limitations