Skip to content

sovandara1607/TaskFlow-CS-361-Final

Repository files navigation

TaskFlow

A Full-Stack Task Management Application

Flutter × Laravel | Modern, Beautiful, and Production-Ready

Flutter Dart Laravel PHP License Platform

A beautifully crafted, full-stack task management app featuring a liquid-glass UI design system, complete CRUD operations, token-based authentication with GitHub OAuth, dark mode, and bilingual localization (English/Khmer).


CS361 | Mobile Application Development • Final Project ParagonU International University • Phnom Penh


Overview

TaskFlow is a cross-platform task management application built with a modern mobile-first approach. The project demonstrates a RESTful API with Laravel Sanctum authentication to implementing a responsive, animated Flutter client with Provider-based state management.


Tech Stack

Layer Technology Purpose
Frontend Flutter 3.x / Dart 3.10 Cross-platform mobile & web UI
Backend Laravel 12 / PHP 8.2+ RESTful API server
Authentication Laravel Sanctum Token-based API authentication
OAuth Laravel Socialite GitHub OAuth 2.0 integration
Database MySQL Relational data persistence
HTTP Client package:http REST API communication
Local Storage SharedPreferences Token & settings persistence

Getting Started

Prerequisites

Tool Version Installation
Flutter SDK 3.x+ flutter.dev/get-started
Dart SDK ≥ 3.10 Included with Flutter
PHP ≥ 8.2 php.net
Composer Latest getcomposer.org
MySQL 8.0+ mysql.com
Node.js 18+ nodejs.org (optional, for Laravel Vite)

Backend Setup (Laravel API)

# 1. Navigate to the API directory
cd taskflow-api

# 2. Install PHP dependencies
composer install

# 3. Configure environment
cp .env.example .env
php artisan key:generate

# 4. Configure your database in .env
#    DB_CONNECTION=mysql
#    DB_HOST=127.0.0.1
#    DB_PORT=3306
#    DB_DATABASE=taskflow
#    DB_USERNAME=
#    DB_PASSWORD=

# 5. Configure GitHub OAuth in .env (optional)
#    GITHUB_CLIENT_ID=your_github_client_id
#    GITHUB_CLIENT_SECRET=your_github_client_secret
#    GITHUB_REDIRECT_URL=http://127.0.0.1:8000/login/oauth2/code/github

# 6. Run database migrations
php artisan migrate

# 7. Start the development server
php artisan serve
# API will be available at http://127.0.0.1:8000

Frontend Setup (Flutter)

# 1. Navigate to the project root
cd TaskFlow-CS-361-Final

# 2. Install Flutter dependencies
flutter pub get

# 3. Verify the API base URL in lib/services/api_service.dart
#    Default: http://127.0.0.1:8000/api

# 4. Run on your target platform
flutter run                    # Default connected device
flutter run -d chrome          # Web
flutter run -d ios             # iOS Simulator
flutter run -d android         # Android Emulator

# 5. Build for production
flutter build apk              # Android APK
flutter build ios              # iOS Archive
flutter build web              # Web deployment

Dependencies

Flutter (Frontend)

Package Version Purpose
provider ^6.1.2 State management (4 ChangeNotifier providers)
http ^1.2.1 HTTP client for REST API
google_fonts ^6.2.1 Poppins & Kantumruy Pro typography
shared_preferences ^2.2.3 Token, settings, and preference persistence
flutter_slidable ^3.1.1 Swipe-to-complete and swipe-to-delete gestures
url_launcher ^6.2.5 GitHub OAuth browser launch
app_links ^6.3.3 Deep link handling (taskflow://auth callback)
font_awesome_flutter ^10.8.0 GitHub & social icons
intl ^0.19.0 Date formatting & i18n utilities
flutter_local_notifications ^18.0.1 Scheduled task due-date reminders
timezone ^0.10.0 Timezone-aware notification scheduling
flutter_timezone ^4.1.1 Device timezone detection
permission_handler ^11.3.1 Runtime permission requests (Android 13+)
liquid_glass_ui ^0.4.0 Liquid glass UI utilities

Laravel (Backend)

Package Version Purpose
laravel/framework ^12.0 Core framework
laravel/sanctum ^4.3 API token authentication
laravel/socialite ^5.24 GitHub OAuth integration

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please follow the Conventional Commits specification for commit messages.


License

This project is licensed under the MIT License — see the LICENSE file for details.


Built using Flutter & Laravel

TaskFlow | Organize your life, one task at a time.

About

A beautifully crafted, full-stack task management app

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors