https://github.com/albinpk/tasque
A task management application
https://github.com/albinpk/tasque
android firebase firebase-auth firestore flutter ios object-box offline-first sync
Last synced: about 2 months ago
JSON representation
A task management application
- Host: GitHub
- URL: https://github.com/albinpk/tasque
- Owner: albinpk
- Created: 2025-03-20T18:40:29.000Z (over 1 year ago)
- Default Branch: dev
- Last Pushed: 2025-03-26T15:28:26.000Z (over 1 year ago)
- Last Synced: 2025-03-26T16:35:19.650Z (over 1 year ago)
- Topics: android, firebase, firebase-auth, firestore, flutter, ios, object-box, offline-first, sync
- Language: Dart
- Homepage:
- Size: 939 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
Tasque
## Project Overview
Tasque is a **Flutter-based task management application** designed for efficient task tracking, synchronization, and collaboration. It offers **real-time updates** with Firebase and follows a clean and modern design.
## Core Features
- **Task Management:** Create, update, delete, and view tasks.
- **Task Prioritization:** Assign priority levels (Low, Medium, High) to tasks.
- **Task Synchronization:** Sync tasks with Firebase Firestore.
- **User Authentication:** Google Sign-In and Firebase Authentication.
- **Search & Filtering:** Search tasks and filter by status, priority, or due date.
- **Connectivity Monitoring:** Detects online/offline status for a seamless experience.
- **Theming & UI:** Modern UI inspired by a [dribbble](https://dribbble.com/shots/23472405-Streamline-Mobile-App-Design) design.
---
## Project Architecture
Tasque follows a **feature-based architecture** with a clean separation of concerns and uses a **monorepo structure** managed by Melos:
- **app/tasque**: Main Flutter application.
- **core/**: Common utilities like themes, database setup, and routing.
- **features/**: Specific modules such as authentication and task management.
- **shared/**: Shared widgets, extensions, and utilities.
---
## Database & Data Synchronization
- **ObjectBox:** Local database for efficient data storage.
- **Firebase Firestore:** Stores and synchronizes tasks in real time.
- **Repository Pattern:** Abstracts data sources for better scalability and testability.
### Repository Structure
- `task_repository.dart` - Provides an abstraction layer for accessing tasks.
- `task_sync_repository.dart` - Provides an abstraction layer for task synchronization.
---
## State Management
Tasque uses **Bloc (Cubit)** for state management, ensuring a reactive and scalable architecture.
---
## UI Design
- **Dashboard Screen:** Displays task summary, recent tasks, and create task form.
- **Task List Screen:** Shows a full list of tasks with search and filters.
- **Task Details Screen:** Provides details of a selected task with options to update or delete.
- **Authentication Screen:** Google Sign-In based authentication.
---
## Navigation & Routing
- **GoRouter:** Manages type-safe navigation between screens.
- **Predefined Routes:** Centralized control in `routes.dart`.
- **Deep Linking Capability:** Enables navigation through URL schemes.
---
## Packages & Tools Used
| Package | Purpose |
| ----------------------- | -------------------------------- |
| flutter_bloc | State management (Cubit) |
| go_router | Navigation and routing |
| cloud_firestore | Firebase Firestore integration |
| firebase_auth | User authentication |
| google_sign_in | Google authentication support |
| objectbox | Local database |
| freezed | Data models and serialization |
| lottie | Animations for better UX |
| form_builder_validators | Form validation utilities |
| intl | Date formatting and localization |
| connectivity_plus | Network connectivity monitoring |
---
## Setup & Installation
### Prerequisites
- Flutter SDK (check the version in `.fvmrc` file)
### Steps to Run Locally
1. **Clone the repository:**
```sh
git clone https://github.com/albinpk/tasque.git
cd tasque # project root
```
2. **Navigate to the Flutter app directory:**
```sh
cd apps/tasque # Flutter app directory
```
3. **Install dependencies:**
```sh
flutter pub get
```
4. **Generate necessary files:**
```sh
dart run build_runner build --delete-conflicting-outputs
```
5. **Run the app:**
```sh
flutter run
```
---
## Future Enhancements (todo)
- **Import/Export Feature:** Enable data backup and restore.
---
**Tasque - Making Task Management Simpler!**