Developers
Data Model
The four tables that hold learner state, and how they relate.
fl_enrollments
fl_progress
fl_quiz_attempts
fl_issued_certificates
Key fields
- fl_enrollments: user_id, course_type, course_id, status, source_order_id, created_at. One row per learner per course.
- fl_progress: user_id, lesson_id, course_type, course_id, status, completed_at, position_seconds. Tracks lesson progress.
- fl_quiz_attempts: user_id, quiz_id, course_type, course_id, score, passed, answers_json, created_at. One row per recorded attempt.
- fl_issued_certificates: certificate_number, user_id, course_type, course_id, certificate_template_id, issued_at, emailed_at. One row per issued certificate.
Certificate templates
Certificate designs are stored as fl_certificate posts. Issued learner credentials are stored separately in fl_issued_certificates.
Relationships
Learner-state tables key off user_id plus course_type and course_id. Enrollment is the parent record; progress and quiz attempts accumulate against it; an issued certificate is the terminal record written when the completion rules are satisfied.