MBS Mohammed Baobaid
All projects
Project
Public release Web Application Created 31 March 2021

Ramadan Activities System

An Arabic Laravel system for publishing Ramadan daily activities, Quran readings, media, and participant progress.

Created 31 March 2021, Ramadan Activities System is a public Laravel 8 application I built to organize a Ramadan activity plan around daily awrad tasks. The app combines Arabic RTL pages, Laravel UI authentication, admin activity management, Quran-specific content rendering, audio and YouTube attachments, user completion tracking, and a statistics screen for monitoring participation.

Laravel 8 PHP Laravel UI Blade Bootstrap MySQL Eloquent Carbon CKEditor Arabic RTL UI
Narrated walkthrough

This audio is not a word-for-word copy of the case below. You can read the written case while listening to me explain the project in more detail.

0:00 / 0:00
Speed
Ramadan Activities System project preview
8 Laravel
1.3.1 Release
Arabic RTL Primary UI
Text/audio/video/Quran Content modes

Role

Laravel developer and product builder

Outcome

I shipped a working Ramadan planning system with authenticated participant flows, admin-managed daily content, status-aware progress cards, and a lightweight analytics view for activity, completion, and user counts.

The Challenge

A Ramadan activity plan needs to feel simple for participants while still giving organizers enough control to publish content, update daily tasks, and understand whether people are keeping up. The system also had to support Arabic-first navigation, Quran readings, mixed media, and a daily rhythm where timing matters.

The Approach

I structured the application around three practical models: activities, user completions, and countries. Laravel authentication protects the participant experience, an admin-only route group manages activity content, and Carbon date checks drive the dashboard states. Each activity can carry written content, Quran-formatted text, uploaded audio, and an embedded YouTube video, while completion records connect users back to the activities they finished.

How it works

I turned a Ramadan plan into daily visible progress

The participant dashboard lists the current month's active activities as daily cards. Each card communicates state through color: missed tasks, tasks completed late, tasks completed on the correct day, today's task, and upcoming tasks. That made the experience feel like a simple plan rather than a generic content archive.

Ramadan Activities System participant dashboard with color-coded daily awrad progress cards
Participant dashboard showing the Arabic RTL navigation, progress legend, and daily activity cards for completed, late, missed, current, and upcoming awrad.

The admin flow keeps daily content manageable

Admins can create and edit activities with a title, rich content, day label, date, publish status, Quran toggle, YouTube video id, and optional audio file. The goal was to let organizers prepare the full Ramadan sequence without needing to touch the code for each new reading or media item.

Ramadan Activities System admin activity table listing daily activities with edit and delete actions
Admin list view for managing the published Ramadan activity sequence, including day labels, content previews, and edit/delete actions.
Ramadan Activities System create content form with Quran, YouTube, day, and date fields
Create-content form showing the organizer controls for Quran mode, YouTube media, day numbering, and scheduled activity dates.

Completion tracking is intentionally direct

When a participant opens an activity, the page includes a completion action that saves a UserActivity record for the signed-in user. The dashboard then compares the completion date with the activity date, so the system can separate on-time completion from catch-up completion.

Quran content gets a separate reading treatment

Not every activity is ordinary text. The app added an isQuran path so Quran readings can render through a dedicated Quran presentation with custom typography and a bismillah opening, while other activities can use regular rich text, audio, or embedded video.

Participant registration captures useful context

The registration flow asks for gender, nationality, and birth year alongside the standard Laravel auth fields. A seeded Arabic country list supports the nationality field, and those profile attributes feed the statistics screen rather than staying as unused metadata.

The statistics screen gives organizers a quick read

The /statics page counts registered users, created activities, all recorded completions, completions submitted today, and gender distribution. It is a small analytics layer, but it gives the organizer a practical sense of adoption and daily participation.

Ramadan Activities System statistics dashboard with activity, completion, and user count cards
Statistics dashboard summarizing total activities, recorded completions, today's completions, users, and gender counts.

What this project shows

This was an early Laravel application, and it shows a practical instinct I still value: start with the real workflow, model the smallest data structures that support it, and make the interface clear for the people using it. The code is compact, but the product shape is complete enough to support a seasonal community routine.

Results

  • Built a Laravel 8 application with public GitHub release `1.3.1` and an auth-protected participant experience
  • Created admin workflows for adding, editing, publishing, and deleting Ramadan activity content
  • Supported multiple activity formats, including normal text, Quran text, MP3 uploads, and YouTube embeds
  • Tracked per-user activity completion and used completion dates to distinguish on-time and late progress
  • Added Arabic registration fields for gender, nationality, and birth year, backed by a seeded country table
  • Added operational statistics for users, activities, completions, today's completions, and participant gender distribution

Key features

01 Authenticated participant dashboard for daily Ramadan activity cards
02 Admin activity CRUD with title, content, day, date, publish status, Quran mode, YouTube video, and audio upload fields
03 Color-coded progress states for upcoming, current, missed, completed on time, and completed late activities
04 Activity detail pages that let users register completion through a `UserActivity` record
05 Quran reading mode with dedicated Arabic Quran typography and alternate content presentation
06 Statistics screen for total users, total activities, total completions, today's completions, and gender counts
07 Registration flow that captures participant gender, birth year, and nationality from an Arabic country list

Tech stack

Laravel 8 PHP Laravel UI Blade Bootstrap MySQL Eloquent Carbon CKEditor Arabic RTL UI
Project links

Interested in similar work?

I build systems like this for teams that need reliable engineering, clean interfaces, and measurable outcomes.