Production case study · Education, LMS & school publishing

ByteLift

One education platform for classrooms, content, and student progress.

As Software Development Consultant, I focus on the Rails platform, production learning workflows, and the integration foundations shared by ByteLift's web and mobile experiences.

ByteLift LMS shown on a laptop, tablet, and phone against a navy textured background

The problem

Keep every learning activity connected to the same student record.

A school LMS must connect controlled enrollment, classroom membership, lessons, books, activities, exams, attendance, discussions, and live sessions while still giving administrators and teachers clear tools to manage the system.

  • Keep student identity and enrollment controlled without making access difficult for schools.
  • Make web and mobile experiences reflect the same classroom, content, and progress state.
  • Support documents, video, assessments, discussions, and live sessions without one workflow obscuring another.
  1. 01

    Enroll

    A student identifies and redeems school-issued access.

  2. 02

    Join

    Classes, teachers, books, and modules become available.

  3. 03

    Learn

    Lessons combine structured text, video, and documents.

  4. 04

    Practice

    Activities and discussions reinforce classroom work.

  5. 05

    Assess

    Exams capture attempts, answers, and review states.

  6. 06

    Progress

    Attendance and completion remain connected to the learner.

The product

Three surfaces, one education platform.

The Rails application serves the public website, school and teacher workflows, administration, and versioned APIs. The Expo application gives students a focused mobile learning experience.

Students · Expo for iOS & Android

Student mobile app

Move from enrollment to learning, assessment, and progress in one focused experience.
  • Classes, modules, books, and discussions
  • Activities, exams, attendance, and profile
Consumes the same versioned Rails APIs used to maintain the learning record.

Schools, teachers & admins · Rails web

School & teacher LMS

Organize people, classes, subjects, content, and assessments.
  • School, class, student, and content management
  • Assessment, attendance, livestream, and reporting workflows
Keeps administrative actions beside the domain rules and data they affect.

Schools, educators & customers · Public web

Publishing & programs web

Present robotics programs, learning materials, events, and educational products.
  • Grade 1–10 robotics curriculum and events
  • Books, kits, shop, checkout, and account workflows
Shares the Rails platform with publishing, training, and commerce operations.

What I owned

Platform ownership with production delivery.

My work is concentrated in the Rails platform and delivery architecture, with foundational contributions to the mobile application and release path alongside the broader ByteLift team.

01

Platform & identity

  • Implemented school-issued student enrollment codes and redemption workflows.
  • Strengthened account recovery and password-reset behavior with integration coverage.
02

Learning & live delivery

  • Built class livestream workflows with self-hosted LiveKit and verified webhooks.
  • Delivered exam import, module sharing, and AI-assisted manual Q&A capabilities.
03

Mobile foundations

  • Established the Expo app structure, data-query layer, authentication, and dashboard foundations.
  • Set up location support and completed the initial iOS deployment path.

Engineering backbone

Rails keeps the learning domains connected.

A Rails 7.2 modular monolith keeps school, classroom, content, assessment, publishing, and commerce rules close to one MySQL data model. A shared Expo application consumes focused API v1 endpoints for the student experience.

01

Expo student app

A route-based mobile experience for enrollment, classes, content, assessment, and progress.

02

Rails web, API & services

Domain workflows, versioned mobile APIs, public pages, and service integrations in one application.

03

Admin & teacher tools

School setup, classroom management, publishing, training, and operational controls.

MySQL + S3

Relational learning records plus durable delivery for books, documents, images, and uploads.

Redis + LiveKit

Shared live state and synchronous classroom sessions with verified webhooks.

Expo + app stores

One React Native codebase distributed to iOS and Android learners.

How state moves
  1. Students authenticate and use API v1 to read and update their learning state.
  2. Rails web and admin workflows manage schools, classes, content, assessments, and publishing.
  3. MySQL retains the durable record while S3, Redis, and LiveKit support media and live delivery.

Engineering decisions

Two choices that shaped the learning experience.

01

Controlled enrollment without manual account setup

Problem
Schools need to place the right learner into the right classes without exposing open registration or creating every account by hand.
Decision
Model enrollment codes, redemptions, and class assignments explicitly, then expose identify and authenticate steps that the mobile app can guide separately.
Trade-off
A staged enrollment path adds states and recovery cases, but keeps school-issued access auditable and reusable.
02

Mixing self-paced content with live classrooms

Problem
Books, lessons, activities, exams, discussions, and livestreams each have different delivery and progress behavior.
Decision
Keep their domain records and permissions in Rails, deliver files through managed storage, and isolate LiveKit behind a gateway with signed webhook verification.
Trade-off
The unified platform reduces duplicated identity and class logic, but increases the breadth of regression coverage required for each release.
Codebase footprint Repository snapshot · August 2026
Applications
2Rails web/API platform and Expo mobile application
Rails controllers
87Repository snapshot, August 2026
Domain models
99Repository snapshot, August 2026
Rails tests
193Repository snapshot, August 2026
Mobile routes
45Repository snapshot, August 2026

Secondary implementation context, verified against the working repositories.

Impact & reflection

A maintained platform available across web, iOS, and Android.

01

Available on iOS and Android

Public App Store and Google Play listings make the student experience available across both major mobile platforms.

02

One connected learning record

Enrollment, classes, modules, books, activities, exams, attendance, and discussions resolve through one Rails platform.

03

Actively maintained

The iOS 1.0.20 release was published July 31, 2026, with the Android listing also showing a current 2026 update.

What I learned

Education software must fit the institution and the learner.

The student interface can stay focused only when enrollment, permissions, publishing, assessment, and recovery are explicit behind it. Good learning UX depends on dependable administrative workflows.

The next step is to keep strengthening automated coverage and observability as more classroom and content workflows move through the shared platform.