Skip to content

Repository files navigation

Local Service Finder App 🛠️📱

Platform Language Architecture Backend

Local Service Finder App is a modern and comprehensive Service Marketplace Android Application built natively using Jetpack Compose and Kotlin. It acts as a seamless bridge between local service providers (like electricians, plumbers, cleaners) and users looking for on-demand services. The app features a professional UI/UX design, smart filtering, and cloud-driven real-time synchronization.


📸 Screenshots & UI Showcase

Login Screen Registration Screen Home Dashboard

Search & Filter Post Service User Profile

Chat List Chat Conversation Logout Screen


🚀 Features

👤 Cloud Authentication & Identity

  • Secure Auth Gateway: Robust Sign-Up (SignInScreen, LogInScreen) workflows powered by Firebase Authentication.
  • Persistent Sessions: Keeps users securely authenticated across application restarts.

🔍 Service Discovery & Filtering

  • Home Dashboard: Structured category-wise filtering (Cleaning, Plumbing, Electrician, etc.) with clean horizontal chip navigation via HomeScreen.
  • Smart Search Flow: Advanced custom filter capabilities integrated within FilterBottomSheet, Search, and SearchHistoryManager.

📝 Service Post Management

  • Cloud Data Sync: Leverages Firebase Firestore to store, update, and manage persistent service listings and user profiles via PostServiceScreen.
  • Interactive Listings: Detailed entry views using ServiceDetailsActivity displaying comprehensive descriptions, ratings, and custom pricing (in ৳).

💬 Real-Time Messaging & State

  • Reactive Core: Fully functional Chat and ChatList components powered by Firebase Realtime Database for low-latency, immediate messaging.
  • State-Driven Performance: Highly responsive UI layer built with Jetpack Compose that updates instantly when data changes on the cloud.

🏗️ Architectural Blueprint

The application enforces a decoupled MVVM (Model-View-ViewModel) architectural pattern backed by a dedicated Repository Layer, adhering strictly to modern Android clean coding guidelines.

com.example.serviceapp/
│
├── Adapter/               # Optimized list mappings and view handlers
│
├── Model/                 # Structured immutable data schemas
│   ├── AppModel.kt        # Service entities and core models
│   └── UserProfile        # User schema and profile mappings
│
├── Repository/            # Data Layer (Single Source of Truth)
│   └── AppRepository      # Orchestrates Firestore, Realtime DB, and Auth streams
│
├── View/                  # Presentation Layer (Activities & Composable Components)
│   ├── Chat               # Message bubble configurations and screen states
│   ├── ChatList           # Active message streams panel
│   ├── FilterBottomSheet  # Dynamic custom bottom drawer for query mutations
│   ├── HomeScreen         # Core feeds and dynamic service category rows
│   ├── LogInScreen        # Authentication landing structure
│   ├── MainActivity       # Base structural frame of the application
│   ├── PostServiceScreen  # Provider catalog listing constructor
│   ├── Search             # Advanced search logic panel
│   ├── SearchHistoryManager # Direct tracking engine for query histories
│   ├── ServiceDetailsActivity # In-depth overview controller for individual entries
│   ├── SignInScreen       # User onboarding/registration setup
│   └── UserProfile        # Identity custom layouts and metrics display
│
└── ViewModel/             # State Management Layer (Business Logic)
    ├── AuthViewModel      # Manages secure authentication states
    ├── HomeViewModel      # Handles core dashboard feeds and states
    ├── PostServiceViewModel # Handles custom service listing creation
    ├── ProfileViewModel   # Controls user and provider identity data
    ├── SearchViewModel    # Manages query evaluations and filter parameters
    └── ServiceDetailViewModel # Exposes specific service nodes to the UI

🛠️ Production Tech Stack

Language: Kotlin

Backend Suite: Firebase Auth, Cloud Firestore, and Realtime Database

Asynchronous Engine: Kotlin Coroutines for lightweight background execution and non-blocking tasks.

State Pipelines: MutableStateFlow / StateFlow streams for lifecycle-aware, reactive UI updates.

🚀 Future Roadmap

[ ] Location-Based Service Matching: Implement dynamic geolocation tracking using FusedLocationProviderClient to match users automatically with the nearest available service providers based on real-time distance metrics.

[ ] Advanced Communication Suite: Integrate real-time chat channels within the app with capabilities to seamlessly send images and voice notes.

[ ] In-App Calling System: Add an instant real-time voice call feature to allow clients and technicians to communicate smoothly.

⚙️ Project Setup & Installation Follow these steps to set up and run a local instance of the workspace:

  1. Source Acquisition Bash git clone https://github.com/jui1960/Local--Service--Finder--App.git cd Local--Service--Finder--App
  2. Firebase Configuration Initialize a new project in the Firebase Console.

Enable Firebase Authentication (Email/Password), Cloud Firestore, and Realtime Database.

Register your Android app with the package name com.example.serviceapp.

Download the google-services.json file and place it strictly inside the root /app directory of this project.

  1. Compilation & Runtime Open the project inside Android Studio.

Run a full Gradle Sync to install external extensions and dependencies.

Attach a physical Android testing device or deploy an Emulator, then click the Run button (Shift + F10).

🤝 Contribution Guidelines Contributions, issues, and feature enhancements are welcome! Feel free to fork this repository, open an issue tracking ticket, or submit a descriptive Pull Request targeting the upstream main branch.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages