# 📱 Task Manager App - Flutter with Back4App BaaS
> **Project**: Flutter CRUD Application with Backend-as-a-Service (BaaS)
> **Platform**: Flutter (Dart) + Back4App (Parse Server)
---
## 📋 Project Overview
This is a **Task Manager Application** built with **Flutter** that uses **Back4App** as a Backend-as-a-Service (BaaS). The app provides complete task management capabilities with user authentication, real-time cloud sync, and a modern Material Design 3 interface.
### 🎯 Key Highlights
✅ **No Custom Backend Required** - Back4App handles all server-side operations
✅ **Student Email Authentication** - Register and login with `.edu` or `.ac.in` emails
✅ **Full CRUD Operations** - Create, Read, Update, and Delete tasks seamlessly
✅ **Task Priority Management** - High, Medium, and Low priority levels
✅ **Due Date Tracking** - Optional due dates for better task planning
✅ **Real-time Statistics** - Track total, completed, and pending tasks
✅ **Secure Logout** - Session management with confirmation dialogs
✅ **Modern UI/UX** - Material Design 3 with smooth animations
---
## 🚀 Features
### 1. User Authentication
- **Registration**: Students can register using their institutional email (`.edu`, `.ac.in`)
- **Email Validation**: Enforces student email format requirements
- **Login**: Secure authentication with password visibility toggle
- **Session Management**: Auto-login for authenticated users
- **Secure Logout**: Confirmation dialog to prevent accidental logouts
### 2. Task Management (CRUD)
#### Create
- Add new tasks with title and description
- Set priority level (High/Medium/Low)
- Optional due date selection
- Form validation to ensure data quality
#### Read
- View all tasks in a clean, organized list
- Real-time task statistics dashboard
- Priority badges with color coding
- Due date display with calendar icons
#### Update
- Edit task details anytime
- Modify title, description, priority, or due date
- Toggle task completion status
- Visual feedback with success messages
#### Delete
- Remove tasks with confirmation dialog
- Prevents accidental deletions
- Instant UI updates
### 3. Additional Features
- **Pull-to-Refresh**: Sync latest tasks from cloud
- **Task Statistics**: Visual dashboard showing total/completed/pending counts
- **User Profile**: Display logged-in user's email in app bar
- **Empty State**: Helpful guidance when no tasks exist
- **Loading States**: Progress indicators during network operations
- **Error Handling**: User-friendly error messages
---
## 🛠️ Technology Stack
| Component | Technology |
|-----------|-----------|
| **Frontend** | Flutter 3.x (Dart) |
| **Backend** | Back4App (Parse Server) |
| **Database** | Back4App Cloud Database |
| **Authentication** | Parse User Authentication |
| **UI Framework** | Material Design 3 |
| **State Management** | StatefulWidget |
| **Version Control** | Git / GitHub |
---
## 📦 Dependencies
```yaml
dependencies:
flutter:
sdk: flutter
parse_server_sdk_flutter: ^3.1.0
provider: ^6.0.0
cupertino_icons: ^1.0.2
```
---
## 🔧 Setup Instructions
### Prerequisites
- Flutter SDK (3.0 or higher)
- Android Studio / VS Code
- Back4App Account
- Git
### Step 1: Clone Repository
```bash
git clone <your-repository-url>
cd task_manager_back4app_complete_v2
```
### Step 2: Back4App Configuration
1. **Create Back4App Account**
- Visit [https://www.back4app.com/](https://www.back4app.com/)
- Sign up for a free account
2. **Create New App**
- Click "Build new app"
- Name it "TaskManager"
- Select region closest to you
3. **Get API Credentials**
- Go to **App Settings** > **Security & Keys**
- Copy your **Application ID** and **Client Key**
4. **Update Configuration**
- Open `lib/main.dart`
- Replace the following constants:
```dart
const String appId = 'YOUR_APP_ID_HERE';
const String clientKey = 'YOUR_CLIENT_KEY_HERE';
```
### Step 3: Install Dependencies
```bash
flutter pub get
```
### Step 4: Run the App
```bash
# For Android
flutter run
# For iOS
flutter run -d ios
# For Web
flutter run -d chrome
```
---
## 📱 App Flow
```
┌─────────────────┐
│ Splash Screen │ (Check Authentication)
└────────┬────────┘
│
┌────▼─────────────────┐
│ Authenticated? │
└─────┬─────────┬──────┘
│ │
Yes│ │No
│ │
┌─────▼──┐ ┌──▼────────┐
│ Tasks │ │ Login │
│ Screen │ │ Screen │
└────────┘ └─────┬─────┘
│
┌────▼────────┐
│ Register │
│ Screen │
└─────────────┘
```
### Task Management Flow
```
Tasks Screen
│
├─→ Add Task → Task Edit Screen → Create Task
│
├─→ Edit Task → Task Edit Screen → Update Task
│
├─→ Toggle Completion → Update Status
│
├─→ Delete Task → Confirmation → Remove Task
│
└─→ Logout → Confirmation → Login Screen
```
---
### Requirements Met
| Requirement | Status | Implementation |
|-------------|--------|----------------|
| User Authentication (Student Email) | ✅ | Registration & Login with `.edu`/`.ac.in` validation |
| Create Tasks | ✅ | Add task form with title, description, priority, due date |
| Read Tasks | ✅ | Task list with real-time sync from Back4App |
| Update Tasks | ✅ | Edit task details and toggle completion status |
| Delete Tasks | ✅ | Remove tasks with confirmation dialog |
| Back4App Integration | ✅ | Parse SDK for all backend operations |
| Real-time Sync | ✅ | Pull-to-refresh and automatic updates |
| Secure Logout | ✅ | Session invalidation with confirmation |
| Modern UI | ✅ | Material Design 3 with animations |
| Error Handling | ✅ | User-friendly error messages |
---
## 🏗️ Project Structure
```
lib/
├── main.dart # App entry point, initialization
├── screens/
│ ├── splash_screen.dart # Animated splash screen
│ ├── login_screen.dart # User login with validation
│ ├── register_screen.dart # User registration
│ ├── task_list_screen.dart # Main task dashboard
│ └── task_edit_screen.dart # Add/Edit task form
└── services/
└── parse_service.dart # Back4App API integration
```
---
## 🔐 Security Features
- Password visibility toggle for user convenience
- Student email validation (server-side verification recommended for production)
- Secure session management with Parse Server
- User-specific task isolation (tasks linked to owner ID)
- Confirmation dialogs for destructive actions
---
## 📚 Learning Outcomes
### Technical Skills
- Flutter app development with Dart
- BaaS integration (Back4App/Parse)
- RESTful API consumption
- User authentication flows
- CRUD operations implementation
- State management in Flutter
- Material Design principles
### Professional Skills
- Version control with Git
- Project documentation
- Technical presentation
- Video demonstration
- Time management
---
## 🚧 Future Enhancements
- [ ] Email verification on registration
- [ ] Password reset functionality
- [ ] Task categories/tags
- [ ] Task search and filters
- [ ] Push notifications for due tasks
- [ ] Dark mode support
- [ ] Task sharing between users
- [ ] Offline mode with local cache
- [ ] Export tasks to PDF
---
## 📝 Notes for Production
**Current Implementation**: This is a student project with client-side email validation.
**Production Recommendations**:
1. Implement server-side email verification
2. Add email confirmation workflow
3. Enable Parse LiveQuery for real-time updates
4. Implement role-based access control
5. Add rate limiting for API calls
6. Enable HTTPS enforcement
7. Implement proper error logging
8. Add analytics tracking
---
## 👨💻 Author
**Your Name**:Prem Gurumukh
**⭐ Star this repo if you found it helpful!**
Made with ❤️ using Flutter and Back4Appcpremgurumukh/TaskManagerApplication
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|