Task Manager

Mohamad Al Bali

Task Manager App By Mohammad Al Bali

Description

The Task Manager App is a robust and feature-rich application built using Flutter. It enables users to manage tasks efficiently with functionalities like authentication, task CRUD operations, pagination, and state management. The app is designed following Flutter best practices, with a focus on performance, clean code, and intuitive user experience following Google Material 3 Design Rules.

Features

User Authentication
Secure login using https://dummyjson.com/docs/auth.
Validates username and password and fetches user details based on the authentication token.
Task Management
Add, view, edit, and delete tasks.
User-specific task management with distinct endpoints for personal and global tasks.
Pagination
Efficient task retrieval using paginated APIs (https://dummyjson.com/todos?limit=30&skip=30).
Lazy Loading by listening to screen scrolls to effectively fetch more data
State Management
Implemented using BLoC for efficient and scalable application state handling.
Local Storage
Tasks are stored persistently using SQFLite for local data availability.
Settings like themes, language preferences and tokens are managed via SharedPreferences.
Localization
Multi-language support for English and Arabic, seamlessly switchable in-app without the need to restart.
Light & Dark Mode
Dynamically toggles between light and dark themes to enhance user experience.
Unit Testing
Comprehensive test coverage for task CRUD operations, input validation, and state management using mocks.
Show Case View
Tutorials on first startup, improving user usability

Screenshots

Splash Screen - Login Page - Home Page
Light Mode in Arabic - Settings Page - All Tasks
Edit a Task - Add a New Task - SnackBar

Technologies Used

Flutter & Dart: Framework for building cross-platform applications.
BLoC: State management pattern for efficient state handling.
SQFLite: Local database for data storage.
SharedPreferences: Lightweight storage for app settings & tokens.
Dio: Powerful HTTP client for API integration.
Google Material 3: For UI design and accessibility.

Folder Structure

The project is organized to ensure maintainability and scalability.
. ├── assets │ ├── fonts │ │ └── Cairo │ │ └── WithoutSans │ │ │ └── images │ ├── personal │ └── splash │ ├── lib │ ├── main.dart │ │ ├── layout │ │ ├── cubit │ │ │ ├── cubit.dart │ │ │ └── states.dart │ │ │ │ │ └── home_layout.dart │ │ │ ├── models │ ├── modules │ └── shared │ ├── components │ ├── network │ ├── styles │ └── bloc_observer.dart │ ├── test │ ├── cubit_test.dart │ ├── db_test.dart │ ├── network_test.dart │ └── input_validation_test.dart ├── pubspec.yaml └── README.md

Setup Instructions

Prerequisites

Flutter SDK: Ensure Flutter is installed. Install Flutter
Dart SDK: Included with Flutter.

Installation

Clone the repository
cd Task-Manager
Install Dependencies: flutter pub get
Run the application using Android Studio or VS Code: flutter run
To Produce an APK for an Android Release: flutter build apk --release
Apk Instance is available with the files /releases/maidsTaskManager.apk

NOTE: App is not signed yet for a Google Store Release, so it will ask for a scan on Installation

Design Decisions

BLoC for State Management: Chosen for scalability and separation of concerns.
SQLite for Persistent Storage: Ensures tasks are available offline.
Dio: Simplifies HTTP requests and error handling.
Material 3 Design: Used for a modern and accessible user interface.
Localization Localization is important for multiple language support.
Modes Light & Dark Mode are enabled to ensure ease of use

Challenges

Writing comprehensive unit tests for both online and offline functionality.
Following Google Material 3 guidelines

Testing

Run Tests via terminal: flutter test

Thank You For This Opportunity

Mohammad Al Bali

Like this project

Posted Dec 15, 2024

The Task Manager App is a robust and feature-rich application built using Flutter. It enables users to manage tasks efficiently with functionalities like authen

SamahWare - Warehouse Management System
SamahWare - Warehouse Management System
Personal Expenses
Personal Expenses
DeepGuard | Deepfake Detection
DeepGuard | Deepfake Detection
Hablar | E-Learning Platform
Hablar | E-Learning Platform

Join 50k+ companies and 1M+ independents

Contra Logo

© 2025 Contra.Work Inc