JTI PORT: LMS for Certiport Certification

December 1, 2025 · 3 min read · Shipped

#Laravel#Filament#MySQL#Katalon Studio

The Problem

Certification preparation for Certiport exams needed a structured, trackable home. Course materials were scattered, quiz results were manual, and there was no single view of learner progress, making it hard for mentors and stakeholders to know who was ready.

My Role

I worked as System Analyst and Web Developer, owning the project from planning documents all the way to tested, working software. That meant I was the one gathering requirements from stakeholders, writing the analysis documents, designing the database, building the features, and proving they worked through testing.

Analysis and Documentation

Before writing any application code, I ran requirements gathering sessions to map out who uses the system and what each role is allowed to do. From there I produced the full analysis package:

  • Use case specifications describing every interaction for admins, mentors, and learners
  • Activity diagrams mapping the flow of course enrollment, quiz taking, and progress tracking
  • Feasibility study assessing whether the project was viable in terms of scope, timeline, and resources
  • SKPL (Software Requirements Specification), the formal requirements document the whole build referenced
  • Entity Relationship Diagram (ERD) designing every table and relation up front

Feasibility study cover I wrote for the JTI PORT project

SKPL cover, document GL01, prepared by me

Database Design

I designed the schema around the learning flow: users with student, instructor, and admin roles; courses organized into chapters and lessons (video, text, quiz, or assignment types); quizzes with questions, attempts, and answers; enrollments tied to orders and payments; and a progress layer tracking completed lessons, quiz scores, and certificates per learner. Designing this on paper first meant the implementation rarely had to migrate mid-build.

Entity Relationship Diagram I designed for JTI PORT

What I Built

Using Laravel, Filament, and MySQL, I developed and maintained the core LMS features:

Course Management

  • Structured course and module management for certification tracks, with categories, levels (beginner to advanced), and draft or published states
  • Digital learning materials attached to each course, including video lessons
  • Role-based access control so admins, mentors, and learners each see exactly what they should

Quizzes and Progress Tracking

  • Quiz engine for practice exams with automated scoring and pass-score thresholds
  • Per-user progress tracking across courses and quizzes, with completion states and earned certificates
  • Review and rating support so learners can give feedback on courses

Testing Approach

Testing ran on two tracks. I wrote manual test cases step by step (for example, the admin flow for adding video material to a course), executed them, and logged the bugs I found. Alongside that, I built automated regression suites in Katalon Studio so previously working flows stayed green as new features landed.

Katalon Studio regression run: 12 test steps, 12 passed

Handover

I also wrote the user manual book so admins and mentors could operate the system without developer help, covering everything from course setup to reading progress reports.

User manual book I wrote for JTI PORT

Technical Stack

  • Backend: Laravel and Filament
  • Database: MySQL with a fully designed ERD
  • Testing: Manual test cases plus Katalon Studio automation

What I Learned

Owning a project end to end, from SRS and stakeholder communication to database design, implementation, and QA, taught me how much good analysis documents pay off during development. The feasibility study and SKPL kept scope arguments short, and the ERD kept the code honest.