Skip to content

Learnathon-By-Geeky-Solutions/team-synergy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

217 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SOHOJOGI - One Stop Home Service Solutions

📚 Project Resources

📋 Project Description

"SOHOJOGIˮ is a one-stop service provider platform for daily household tasks. It connects users with skilled professionals like plumbers, electricians, mechanics, and appliance repair experts, making it easy to find and hire reliable help.

The following image provides a visual overview of our solution:

Zoomable Image

🚀 Getting Started

Prerequisites

Make sure you have the following tools installed on your system:

Verify Flutter installation:

flutter doctor

Project Setup Instructions

  1. Clone the repository:
    git clone https://github.com/Learnathon-By-Geeky-Solutions/team-synergy.git
  2. Install dependencies:
    flutter pub get
  3. Run the application:
    flutter run

🌿 Git Branching Strategy

We follow a simple and organized Git workflow to ensure smooth collaboration and code management:

Branch Structure

  • features/* branches
    Used for developing individual features, bug fixes, or improvements.
    Feature branches are created from dev.

  • dev branch
    The main development branch where all completed features are merged.
    This branch contains the latest code under development and testing.

  • main branch
    The production-ready branch.
    Once the dev branch is stable and fully tested, changes are merged into main.

🏗️ Technical Architecture

Category Technology/Pattern
Architecture Pattern MVVM (Model-View-ViewModel)
State Management Provider
Remote Database Supabase
Authentication Supabase Auth
UI Framework Flutter Material Design
Language Dart
Key Features • Dark/Light Theme
• Multi-language Support
• Profile Management
• Business Profiles
• Location Services
• Review System
• Notifications

📁 Project Structure

The structure follows clean architecture principles with:

  • lib/: Main source code
    • base/: Core services and utilities
    • constants/: App-wide constants
    • screens/: Feature modules following MVVM
    • utils/: Helper functions and utilities
  • test/: Test files
  • assets/: Static resources

💾 Database Schema

erDiagram
    countries ||--o{ states : has
    states ||--o{ cities : has
    cities ||--o{ areas : has
    
    profile ||--o{ user_locations : has
    countries ||--o{ user_locations : references
    states ||--o{ user_locations : references
    cities ||--o{ user_locations : references
    areas ||--o{ user_locations : references
    
    workers ||--o{ worker_services : provides
    workers ||--o{ worker_skills : has
    workers ||--o{ worker_qualifications : has
    workers ||--o{ worker_portfolio_items : has
    workers ||--o{ worker_availability : has
    worker_availability ||--o{ worker_time_slots : contains
    
    workers ||--o{ worker_reviews : receives
    worker_reviews ||--o{ review_photos : has
    
    profile ||--o{ orders : places
    workers ||--o{ orders : fulfills
    orders ||--o{ order_services : contains
    worker_services ||--o{ order_services : included_in
    orders ||--o{ order_statuses : tracks
    
    workers_registration ||--o{ worker_work_types : has
    work_types ||--o{ worker_work_types : belongs_to

    countries {
        SERIAL id PK
        TEXT name
        TEXT code
        TEXT flag
    }
    
    states {
        SERIAL id PK
        INTEGER country_id FK
        TEXT name
        TEXT code
    }
    
    cities {
        SERIAL id PK
        INTEGER state_id FK
        TEXT name
        TEXT code
    }
    
    areas {
        SERIAL id PK
        INTEGER city_id FK
        TEXT name
        TEXT postal_code
    }
    
    profile {
        UUID id PK
        TEXT name
        TEXT full_name
        TEXT email
        BOOLEAN is_email_verified
        TEXT phone_number
        TEXT gender
        TEXT profile_photo_url
    }
    
    temp_users {
        UUID id PK
        TEXT name
        TEXT email
        TIMESTAMPTZ created_at
    }
    
    user_locations {
        SERIAL id PK
        UUID user_id FK
        TEXT name
        INTEGER country_id FK
        INTEGER state_id FK
        INTEGER city_id FK
        INTEGER area_id FK
        TEXT street_address
        DOUBLE latitude
        DOUBLE longitude
        BOOLEAN is_default
        BOOLEAN is_saved
        TEXT icon
        TIMESTAMP created_at
    }
    
    work_types {
        SERIAL id PK
        TEXT name
        TEXT icon
    }
    
    workers {
        UUID id PK
        TEXT name
        TEXT profile_image_url
        TEXT location
        REAL latitude
        REAL longitude
        TEXT service_category
        TEXT email
        TEXT phone_number
        TEXT gender
        TEXT bio
        REAL completion_rate
        INTEGER jobs_completed
        INTEGER years_of_experience
        BOOLEAN is_verified
        REAL average_rating
        INTEGER review_count
        TIMESTAMP created_at
    }
    
    worker_services {
        UUID id PK
        UUID worker_id FK
        TEXT name
        TEXT description
        REAL price
        TEXT unit
        BOOLEAN is_popular
        TIMESTAMP created_at
    }
    
    worker_skills {
        UUID id PK
        UUID worker_id FK
        TEXT skill_name
        TIMESTAMP created_at
    }
    
    worker_qualifications {
        UUID id PK
        UUID worker_id FK
        TEXT title
        TEXT issuer
        DATE issue_date
        DATE expiry_date
        TEXT certificate_url
        TIMESTAMP created_at
    }
    
    worker_portfolio_items {
        UUID id PK
        UUID worker_id FK
        TEXT image_url
        TEXT title
        TEXT description
        DATE date
        TIMESTAMP created_at
    }
    
    worker_availability {
        UUID id PK
        UUID worker_id FK
        INTEGER day_of_week
        BOOLEAN is_available
        TIMESTAMP created_at
    }
    
    worker_time_slots {
        UUID id PK
        UUID availability_id FK
        TEXT start_time
        TEXT end_time
        TIMESTAMP created_at
    }
    
    orders {
        UUID id PK
        UUID user_id FK
        UUID worker_id FK
        TEXT title
        TEXT description
        TEXT status
        NUMERIC total_price
        TEXT service_type
        TEXT location
        TIMESTAMPTZ created_at
        TIMESTAMPTZ updated_at
        TIMESTAMPTZ scheduled_at
    }
    
    order_services {
        UUID id PK
        UUID order_id FK
        UUID service_id FK
        INTEGER quantity
        NUMERIC price
        NUMERIC subtotal
    }
    
    order_statuses {
        UUID id PK
        UUID order_id FK
        TEXT status
        TIMESTAMPTZ changed_at
        UUID changed_by
        TEXT notes
    }
    
    worker_reviews {
        UUID id PK
        UUID worker_id FK
        UUID user_id
        TEXT user_name
        TEXT user_image
        INTEGER rating
        TEXT comment
        TIMESTAMP date
        TIMESTAMP created_at
    }
    
    review_photos {
        UUID id PK
        UUID review_id FK
        TEXT photo_url
        TIMESTAMP created_at
    }
    
    notifications {
        UUID id PK
        UUID user_id
        TEXT type
        TEXT title
        TEXT message
        UUID related_id
        TEXT action_url
        BOOLEAN is_read
        TIMESTAMPTZ created_at
    }
    
    workers_registration {
        SERIAL id PK
        VARCHAR full_name
        VARCHAR phone_number
        VARCHAR email
        INTEGER years_of_experience
        VARCHAR experience_country
        TIMESTAMPTZ created_at
    }
    
    worker_work_types {
        INTEGER worker_id PK,FK
        INTEGER work_type_id PK,FK
    }
Loading

👥 Team

Role Name GitHub
Team Leader Md. Rakib Hasan @AfnanRakib
Team Member Md. Rubayet Islam @feedofmri
Mentor Shahriar Rahman Shaon @shahriarRahmanShaon

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

“SOHOJOGIˮ is a one-stop service provider platform for daily household tasks. It connects users with skilled professionals like plumbers, electricians, mechanics, and appliance repair experts, making it easy to find and hire reliable help.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors