Skip to content

Abobakr146/DEPI_Flutter_task_supabase

Repository files navigation

DEPI Flutter Task - Supabase Integration

A Help Desk application built with Flutter showcasing Supabase backend integration for real-time database operations, authentication, and cloud storage as part of the DEPI Flutter development course.

📱 Project Overview

This project demonstrates the integration of Supabase as a Backend-as-a-Service (BaaS) solution with Flutter, featuring real-time data operations, user authentication, and cloud storage capabilities.

✨ Features

  • 🔐 Authentication: User registration, login, and session management
  • 💾 Real-time Database: CRUD operations with live data updates
  • 📁 File Storage: Image upload and management
  • 🎯 State Management: GetX for reactive state management
  • 📱 Responsive Design: Adaptive UI for different screen sizes
  • 🖼️ Image Handling: Cached network images and image picker integration
  • 📈 Data Relationships: Foreign keys and table relationships

🚀 Getting Started

Prerequisites

  • Flutter SDK (3.8.1 or higher)
  • Supabase account and project
  • Android Studio / VS Code

Installation

  1. Clone the repository:
git clone https://github.com/Abobakr146/DEPI_Flutter_task_supabase.git
cd DEPI_Flutter_task_supabase
  1. Install dependencies:
flutter pub get
  1. Configure Supabase:

    • Create a project at supabase.com
    • Update your Supabase URL and API key in the configuration
  2. Run the application:

flutter run

📦 Dependencies

dependencies:
  cupertino_icons: ^1.0.8
  get: ^4.7.2                    # State management
  dartx: ^1.2.0                  # Dart extensions
  supabase_flutter: ^2.10.1      # Supabase integration
  cached_network_image: ^3.4.1   # Image caching
  animated_toggle_switch: latest  # UI components
  image_picker: ^1.2.0           # Image selection

📂 Project Structure

lib/
├── main.dart
├── controllers/        # GetX controllers
├── models/            # Data models
├── services/          # Supabase services
├── screens/           # UI screens
├── widgets/           # Reusable widgets
└── utils/             # Helper functions

🔧 Supabase Configuration

Key features implemented:

  • Database Operations: Real-time CRUD with PostgreSQL
  • Authentication: Email/password and social login
  • Storage: File upload and management
  • Real-time Subscriptions: Live data updates

🎯 State Management

This project uses GetX for:

  • Reactive state management
  • Dependency injection
  • Route management
  • Internationalization support

📱 Supported Platforms

  • ✅ Android
  • ✅ iOS
  • ✅ Web
  • ✅ Linux

🧪 Testing

Run tests with:

flutter test

👨‍💻 Author

Abobakr146

📄 License

This project is part of the DEPI Flutter development course.


Powered by Supabase 🚀 Built with Flutter ❤️

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages