ABhome E-Learning — School LMS Owned End to End

Full-Stack · Full-time · Education

Screenshot of the ABhome E-Learning platform

Built and maintain the learning platform ABhome Education teaches on, used by 250+ people across 150+ subjects, with separate portals for admins, homeroom teachers, teachers, students, and parents. I own it end to end: the design system on top of the DashForge theme, the Laravel 11 backend, and production deployment. Google Cloud Storage holds course files, email notifications cover classes, assignments, and quizzes, and a WhatsApp Cloud API channel is built and ready to switch on. Over 2,400 of the codebase’s ~2,700 commits are mine.

ABhome Education runs its subjects, lessons, assignments, and quizzes on this platform. I’m the lead developer, and the Laravel 11 codebase has been in active development since March 2024, with two other contributors adding smaller pieces along the way.

The problem

A school needs one place for everything around a lesson: subjects and materials, virtual classes, file assignments, quizzes, grades, and messages to families. Each of the five roles sees a different slice. Admins set up the school year, homeroom teachers follow their class, teachers run their subjects, students submit work, and parents get their own dashboard. All of it had to run on shared cPanel hosting, with no SSH access and no long-running processes.

What I built

  • A per-role structure where each role has its own routes, controllers, form requests, and policies, on a Controller → Service → Model layering.
  • A quiz module with four question types, autosave, essay grading, and a scheduled command that submits a quiz when its time runs out.
  • A weighted grade recap, reusable subject templates, and a four-step wizard for promoting and graduating students.
  • Twelve queued email notifications plus scheduled reminders, with a dispatch log so the same reminder never goes out twice.
  • A WhatsApp Cloud API channel for class, assignment, and quiz reminders. It works end to end and stays off until the school needs it.
  • Storage for course files, assignment uploads, and thumbnails on Google Cloud Storage.
  • reCAPTCHA v3 on the sign-in forms, admin impersonation for support requests, and Playwright end-to-end tests next to the PHPUnit suite.

A decision worth explaining

Shared hosting rules out a queue worker that stays running. Instead, a single cron entry runs Laravel’s scheduler every minute. Each run drains the database queue with queue:work --stop-when-empty --max-time=50, and the reminder jobs run every 15 minutes. Queued email works without a daemon, and nothing has to stay alive between runs.

A failed WhatsApp send is logged instead of thrown. If it threw, the queued job would retry and send the same emails a second time.

Result

The platform is live at elearning.abhome.education with 250+ users and 150+ subjects, and email notifications are running in production. As of October 2026 the codebase holds 29 models, 20 services, and 58 controllers, and over 2,400 of its ~2,700 commits are mine.

Stack
Laravel 11 · MySQL · jQuery · Google Cloud Storage · WhatsApp Cloud API · Playwright
Skills
Backend architecture · API integration · Design systems · Deployment
  • LMS
  • Full-Stack Development
  • Laravel
  • API Integration
  • Design System
← All projects