Flutter × Laravel | Modern, Beautiful, and Production-Ready
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
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.
| 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 |
| 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) |
# 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# 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| 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 |
| Package | Version | Purpose |
|---|---|---|
laravel/framework |
^12.0 | Core framework |
laravel/sanctum |
^4.3 | API token authentication |
laravel/socialite |
^5.24 | GitHub OAuth integration |
Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please follow the Conventional Commits specification for commit messages.
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.