QuickTask Pro is a sophisticated task management application architected with Flutter and Dart, powered by Back4App (Parse Server) for a scalable and secure backend. This project serves as a comprehensive demonstration of full-stack mobile development, featuring real-time data synchronization, user session management, and CRUD operations.
- Secure Sign Up & Log In: Implements ParseUser for handling secure registration and authentication.
- Session Persistence: Automatic session management ensures users stay logged in across app restarts.
- Create: Add tasks with title and precise due dates.
- Read: Real-time fetching of user-specific tasks.
- Update: Modify task details including title and due date.
- Delete: Remove tasks permanently from the database.
- Toggle Status: Mark tasks as "Completed" or "Pending" with instant visual feedback.
- Material Design: Follows Material 3 guidelines for a clean, modern aesthetic.
- Responsive Layouts: Optimized for various screen sizes.
| Component | Technology | Description |
|---|---|---|
| Frontend | Flutter (Dart) | Cross-platform UI framework. |
| Backend | Back4App | Backend-as-a-Service (BaaS) based on Parse Platform. |
| Database | MongoDB | NoSQL database managed by Back4App. |
| CI/CD | GitHub Actions | Automated build pipeline for Android APKs. |
- Flutter SDK (Stable channel)
- Android Studio or VS Code
- Git
git clone https://github.com/your-username/QuickTask_Pro.git
cd QuickTask_Pro- Create an account at Back4App.
- Create a new App named
QuickTask Pro. - Go to App Settings > Security & Keys.
- Copy your
Application IDandClient Key. - Open
lib/main.dart(or your constants file) and update the credentials:const keyApplicationId = 'YOUR_APP_ID_HERE'; const keyClientKey = 'YOUR_CLIENT_KEY_HERE';
flutter pub getflutter runlib/
βββ main.dart # Entry point and app initialization
βββ screens/ # UI screens (Login, Home, TaskDetail)
βββ models/ # Data models (Task, User)
βββ services/ # Backend services (AuthService, TaskService)
βββ widgets/ # Reusable UI components
βββ utils/ # Helper functions and constants
| Login Screen | specific Task List | Task Details |
|---|---|---|
Issue: "Client not initialized"
- Fix: Ensure
Parse().initialize()is called inmain.dartbeforerunApp().
Issue: Build failures on Android
- Fix: Check
android/build.gradlefor compatible Kotlin version and ensureminSdkVersionis at least 21.
Contributions are welcome! Please follow these steps:
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.