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.
- Secure Auth Gateway: Robust Sign-Up (
SignInScreen,LogInScreen) workflows powered by Firebase Authentication. - Persistent Sessions: Keeps users securely authenticated across application restarts.
- 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, andSearchHistoryManager.
- 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
ServiceDetailsActivitydisplaying comprehensive descriptions, ratings, and custom pricing (in ৳).
- Reactive Core: Fully functional
ChatandChatListcomponents 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.
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:
- Source Acquisition Bash git clone https://github.com/jui1960/Local--Service--Finder--App.git cd Local--Service--Finder--App
- 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.
- 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.








