Skip to content

cpremgurumukh/TaskManagerApplication

Repository files navigation

# 📱 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 Back4App

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors