Skip to content

About

Flutter + Supabase app for counting selawat & zikir — solo or as a group. Streaks, stats, groups, and daily Islamic content.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

SelawatHub

A beautiful Flutter app for counting selawat and zikir — individually or together as a group. Track your daily dhikr, build streaks, and stay connected with your community.

Built with Flutter + Supabase (Auth, Database, Storage).

Screenshots

Coming soon — dark & light mode previews

Features

Feature Description
🧿 Tasbih Counter 17 built-in dhikr items (10 selawat, 7 zikir) plus user-defined custom entries, manual count entry, 3 visualisation styles, 6 color themes, haptic feedback & tick sound
📊 Statistics 52-week heatmap, streaks with fire tiers, weekly chart, daily goal tracking
👥 Groups Create/join groups, leaderboard, role hierarchy (leader/co-leader/member)
📖 Daily Content Nawawi hadiths, duas, daily dhikr, and post-salaah zikr
👤 Profile Editable profile with avatar, bio, and account management
🌙 Dark/Light Mode Full theme support with system toggle
🌍 Language English & Bahasa Melayu with persisted preference
👻 Guest Mode Use the counter and stats without creating an account

Design

  • Minimal + Bold + Premium — clean whitespace, punchy typography, dark luxe feel
  • Palette — Deep emerald (#4A7C5C) + warm gold (#C4A44E) + cream neutrals
  • Dark & Light modes with smooth toggle

Quick Start

Prerequisites

  • Flutter SDK ≥ 3.7.0
  • Dart ≥ 3.7.0
  • Android Studio / VS Code
  • A Supabase project (see docs/SETUP.md)

Install & Run

flutter pub get

flutter run \
  --dart-define=SUPABASE_URL=your_supabase_url \
  --dart-define=SUPABASE_ANON_KEY=your_anon_key

Build APK

flutter build apk \
  --dart-define=SUPABASE_URL=your_supabase_url \
  --dart-define=SUPABASE_ANON_KEY=your_anon_key

Project Structure

lib/
├── app/
│   ├── app.dart              # Root MaterialApp, routing, auth listener
│   └── app_shell.dart        # Bottom tab navigation (5 tabs)
├── core/
│   ├── constants.dart        # Spacing scale (S class)
│   ├── providers/            # Riverpod providers
│   ├── services/             # 8 static service classes
│   ├── theme/                # Colors (C class), themes
│   └── widgets/              # Shared components (BounceTap, FadeIn, etc.)
├── features/
│   ├── auth/                 # Login, sign-up, welcome, password reset
│   ├── counter/              # Tasbih counter + dhikr models
│   ├── group/                # Group management + settings
│   ├── hadith/               # Daily content (hadiths, duas, adkar)
│   ├── profile/              # Profile, about, legal pages, FAQ
│   └── stats/                # Statistics dashboard
└── main.dart

Documentation

Detailed documentation lives in the docs/ folder:

Document Description
Architecture System design, data flows, design decisions
Setup Development environment setup guide
Database Supabase schema, RLS policies, RPC functions
Features Feature-by-feature documentation
API Reference Services, providers, and external APIs
Design System Colors, spacing, typography, components
Contributing Code style, commit format, conventions
Roadmap Current status and planned features

Tech Stack

Layer Technology
Framework Flutter 3.7+
State Management Riverpod
Backend Supabase (PostgreSQL + Auth + Storage)
External API Naikiyah Dua Data API
Local Storage SharedPreferences
Localisation flutter_localizations + intl (ARB)
Audio audioplayers
Sharing share_plus

License

MIT License — Copyright (c) 2025 Muhammad Muhaimin Bin Roshaizad. See LICENSE for the full text.

About

Flutter + Supabase app for counting selawat & zikir — solo or as a group. Streaks, stats, groups, and daily Islamic content.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages