Overview
Key Features
The app
- Feed: Lectures and cards in one feed, with featured items first, each with its title and tags.
- Watch and keep: Videos stream in the app and can be downloaded. Favourites are kept on the device, and anything can be shared in one tap.
- Find: Sections for videos and cards, a filter by category and sub-category, tags, and full search across everything published. Four more sections are already in place and marked as coming soon.
- Scholars: A list of scholars, each with a profile, a biography and their videos.
- Sunnah alarms: Grouped reminders for the day and night, the week, the month and the year. Each can be switched on separately and is scheduled on the phone itself in its own time zone: daily, on a weekday, or on dates of the Hijri calendar. Each reminder can carry an image, which is downloaded ahead of time so the notification shows it offline.
- Push notifications: New content arrives through Firebase Cloud Messaging on its own Android channel, separate from the alarms, so each can be muted on its own. Tapping one opens the video, card or scholar it announces, even from a cold start.
- Arabic and English: The whole interface is in both languages, right to left in Arabic.
The admin and API
- Content management: Videos, cards, nested categories, tags and scholars, plus the Sunnah alarm groups, platform links, and the privacy and support pages. Codes such as VID-0001 are generated automatically.
- Publish to push: A "Send push notification on publish" switch on videos, cards and scholars. Publishing queues a job that sends to the app's Firebase topic. Each item records when it was announced, so saving it again never sends a second push.
- Media: Thumbnails and video files through Spatie Media Library with automatic image sizes. Video duration, size and format are read with FFprobe.
- Dashboard: Totals with seven-day trends, the most viewed videos, content over time, and breakdowns by category, scholar and tag.
- Roles: Permissions per role through Filament Shield. The super admin role is protected, and API keys are visible only to it.
- Bilingual admin: Arabic and English, switchable from the top bar.
- JSON:API: A versioned JSON:API v1.1 API for the apps, with hashed API keys, per-key rate limits and IP allow lists, and stricter limits on search and view counting. It ships with an OpenAPI spec, Swagger UI and a Postman collection.