OSOsama SolimanSoftware Engineer
All work ↑
Case study · Mobile platform2025—2026

Masajidna

Designing one coherent mosque platform across three Flutter applications—without losing reliability, affordability, or ease of use.

RoleMobile lead
Architecture4 software components
Experiences3 user-facing apps
StatusLive · actively used
Actual product

Live experiences for mosques and their communities.

These are real screens from the working platform: a public prayer display, the mosque administrator dashboard, and mobile mosque discovery.

One community. Three very different interfaces.

Mosque administrators needed a practical way to manage information. Community members needed trustworthy prayer times and discovery. Public display screens needed a clear, glanceable presentation that stayed useful when connectivity became unreliable.

The engineering challenge was to create three focused experiences backed by one consistent data model—while keeping database reads, operational cost, and maintenance complexity under control.

System map

A shared source of truth.

ADMIN APPManage mosque data
MASJID COREProvider-independent domain
FIREBASEAuth · Firestore · Functions
COMMUNITY APPDiscover & plan
DISPLAY APPInform at a glance

Model the data around real usage—not theoretical purity.

Prayer times were embedded within mosque documents so common screens could load the information they needed without triggering a chain of extra reads. Firestore persistence supported an offline-first experience and reduced repeated network activity for returning users.

Fewer readsCost-aware document structure
Faster returnsLocal persistence and caching
Clear boundariesRiverpod-managed application state
Engineering scale

Concrete system rules.

Numbers drawn directly from the product and implementation specifications.

4Architectural components

Shared domain core, admin app, customer app, and display web app.

6Permission roles

Super admin, applicant, admin, manager, viewer, and customer/guest.

3Schedule modes

Manual entry, automatic calculation, and validated CSV import.

5 minPairing-code lifetime

Random six-digit display codes rotate and expire automatically.

12 secAnnouncement rotation

Simultaneously active display announcements rotate on a fixed cadence.

650 msAddress-search debounce

Photon search begins after three characters and returns up to five results.

Signature feature

Can I reach a mosque before prayer starts?

The “Catch Prayer” experience combines the user's location, upcoming prayer times, and the Google Distance Matrix API. It filters options by realistic travel time instead of showing the nearest mosque in a straight line.

  • Location-aware mosque candidates
  • Travel-time calculation through Google APIs
  • Prayer-window comparison
  • Useful fallback and error states
CURRENT TIME+TRAVEL TIME<PRAYER STARTREACHABLE ✓

Security and resilience were product features.

Firebase App Check, query-size restrictions, and rate limiting helped protect backend resources. Offline persistence made the applications useful through intermittent connectivity. Each safeguard was designed around the way the platform would actually be used.

Outcome

A complete product system—not a collection of screens.

3Purpose-built experiences
4 / 6Delivery phases implemented
2Languages with RTL support

The live platform covers the shared foundation, admin experience, public display experience, and customer discovery. Daily-use enhancements continue to ship; widgets and other advanced capabilities remain roadmap work.