Mobile Application / Flutter

Masjid Finder Islamic Companion

Masjid Finder is a cross-platform mobile application built using Flutter, designed as a comprehensive Islamic companion tool. The application helps users locate nearby mosques, track accurate prayer times, determine Qibla direction, and access various Islamic resources within a single platform.

Core Objective

To unify multiple daily-use Islamic utilities into one reliable and well-structured application.

Masjid Finder App Screen 1
Masjid Finder App Screen 2
Masjid Finder App Screen 3

Problem Statement

Fragmented User Experience

Muslims often rely on multiple applications to perform daily religious activities such as checking prayer times, finding nearby mosques, determining Qibla direction, and accessing Islamic content. This leads to fragmented user experience and inconsistent data across different platforms. There is a need for a single, integrated application that provides all essential features in a reliable, efficient, and user-friendly manner.

Proposed Solution

Unified Mobile Application

The solution was to develop a unified mobile application that combines mosque discovery, prayer time calculation, Qibla navigation, and Islamic content into one system. The application leverages device location, mapping services, and offline storage to provide accurate and accessible information to users.

Clean Architecture

Built using Flutter with a feature-first clean architecture approach.

Rt

State Management

Uses Riverpod for scalable state management with a reactive and testable architecture. Implements notifier-based architecture for clean separation of logic without dependency on BuildContext.

layers

Two Main Layers

Organized into a Core Layer containing shared services (network, storage, location), themes, constants, and utilities; alongside a Feature Layer containing independent modules like masjid, prayer times, qibla, etc.

map

Backend & Routing

Cloud Firestore is used to store masjid data with real-time updates for mosque information. GoRouter is used for structured navigation.

Core Features

location_on

Mosque Finder

Displays nearby mosques using Google Maps. Uses device location for accurate results. Supports geographic navigation.

explore

Prayer Times & Qibla

Calculates prayer times using standard Islamic calculation methods and displays next prayer countdown. Provides real-time Qibla direction using device sensors and compass-based navigation.

menu_book

Islamic Content

Includes Quran, Azkar, Dua, and 99 Names of Allah. Provides educational and devotional resources.

offline_pin

Notifications & Offline

Local notifications for prayer reminders with customizable settings. Stores essential data locally using Hive to work in low or no internet conditions.

speed Performance & Stability

  • check_circle

    Efficient state updates using Riverpod and reduced unnecessary rebuilds. Optimized map rendering and location updates.

  • check_circle

    Structured error handling using custom exception classes, network failure handling, and fallback mechanisms. Stable state transitions to prevent crashes.

Challenges Faced

Integrating multiple complex features into a single app, handling accurate prayer time calculations, managing device sensors for Qibla direction, implementing offline-first architecture, and maintaining performance with multiple modules.

Future Improvements

Add cloud sync for user preferences, enhance personalization features, improve global mosque database, and add advanced analytics.

Tech Stack & Tools

Flutter
Dart
Riverpod
Firebase
Firestore
Google Maps API
Geolocation
Hive Local Storage

Your Role & Contribution

Mobile Architecture Lead

Built the application independently from scratch. Designed and implemented complete architecture. Developed all core features including: Mosque finder, Prayer times system, Qibla compass, and Islamic content modules. Integrated Firebase and location services. Implemented offline support using local storage. Optimized performance and ensured app stability.