Skip to content
BENAA homeالعربية

All work

Education · Online tutoring · 2025

A teachers’ e-learning platform: a price engine, bundles, coupons and solved exams

Teachers sell their video lessons, exams and bundles to school students on one platform. Students pay from a wallet, work through a teacher’s courses in order, and sit exams that lead to their own explanation. The platform began from an existing Laravel code base, and during 2025 two of our engineers extended it: course and exam management, storage, comments and live meetings, then packages, coupons, paid and solved exams, the unlock order and the wrong-answers limit.

Built by

Backend
Client
Withheld at the client’s request
Timeline
Platform from 2024 · our part January – December 2025
Squad
A team project · our part: 2 engineers
Platform
Web · public site, student area, teacher area and admin panel
Languages
Arabic (the default) and English
Size
55 models · 76 migrations · 304 views · about 500 routes
Payments
An internal wallet, topped up by request and approved by an admin
Video
YouTube, Google Drive or VdoCipher embeds

Technologies

  • Laravel 9
  • PHP 8.1
  • MySQL
  • Blade
  • Bootstrap 5
  • Metronic
  • DigitalOcean Spaces
  • VdoCipher
  • Zoom API
  • mPDF
  • Laravel Excel
  • jQuery

The product

13 images

01

Brief

Many teachers, one wallet, and prices that have to add up.

Context

Independent teachers sell video lessons, exams and bundles to school students on one platform. Each sale carries the platform’s commission and the teacher’s share, and a purchase gives access for a number of days.

What had to be managed

Several teachers, each with courses, groups, exams and bundles; students by stage and year; a wallet topped up on request; a price that can come from a coupon, a bundle or a course discount; exams that are free or paid; and lessons that open in order.

Goals

  • One place that decides a price
  • Bundles and coupons with clear rules
  • Paid exams that lead to their explanation
  • Lessons that open in the order a teacher intends
  • An admin panel that follows every purchase

02

Team

A team project, and our part of it.

The platform began from an existing Laravel code base, imported in November 2024. During 2025 two of our engineers extended it. One worked through the year on course and exam management, homework and listening exercises, video and file storage, comments, live meetings, notifications and the bundle screens. The other joined in December 2025 and built the price engine, coupons, bundle purchase, paid and solved exams, the unlock order and the wrong-answers limit. This page describes only what we added.

Full-stack engineersCourse and exam management, the price engine, coupons, bundles, the unlock order, the wrong-answers limit and the admin screens×2Senior

Meet the team

03

Frontend

Four areas on one server-rendered code base.

Who worked on it

Backend

The interface is server-rendered Laravel Blade, 304 views in all: a public site that is Arabic by default with an English switch, a student area, a teacher area, and an admin panel on the licensed Metronic theme. Prices and discounts are shown as the server worked them out.

Purchases.
The student’s home.
The admin home.
  1. Decision 1

    Server-rendered pages on a licensed theme

    Blade pages and a ready admin theme kept the work on rules and workflows, and every screen reads the same data the rules do.

    Trade-off · Arabic is the default and some labels are still English, and pages repeat markup that a component library would share.

  • A catalogue of courses and bundlesThe public pages list teachers, courses and bundles with their price and discount, and a bundle’s page shows what it costs against what its courses cost apart.
  • The student’s homeA student sees their teachers, their wallet with its latest movements, and the latest lessons their teachers published.
  • Locks you can readA locked course says what comes first, the homework to do or the earlier course to finish, and puts a button to start it right there.
  • After an examThe result shows the score and the success rate, and once the wrong-answers limit is reached, a button to watch the full solution.
  • The admin’s screensCoupons with filters, usage counts, an on and off switch and a CSV export; bundles with their discount and valid period; exams with their questions, rate and dates; and a purchase list that marks each line as a paid exam or a solved exam.
  • The teacher’s sideTeachers write questions, build exams, form groups, add students and make activation codes, and read an exam’s results and each student’s answers.

04

Backend & architecture

One price engine, bundles bought whole, and exams that lead to their explanation.

Who worked on it

Backend

One service works out the price of a course, an exam or a basket of courses. It takes the item, the student and an optional coupon or bundle, and answers with the original price, the discount, its source and the final price. Students pay only from a wallet: they ask for a top-up and an admin approves it, and each purchase becomes an order with the commission and the teacher’s share. A purchase gives access for a number of days.

A bundle.
Content that opens in order.
A course locked until the one before it is done.
A result that leads to the explanation.
Coupons.
The rules of a coupon.
Bundles.
An exam and its limit.
Exams.
  1. Decision 1

    One discount, never stacked

    A price is easy to predict and to explain when exactly one source applies and the answer names it, for a student, a teacher and an admin looking at the same order.

    Trade-off · A coupon replaces a bundle’s discount rather than adding to it, so it wins even when the bundle would have taken more off.

  2. Decision 2

    Buy now, unlock in order

    A student can buy a teacher’s whole series at once, while each course still opens only after the ones before it are finished, which keeps the teacher’s intended sequence.

    Trade-off · The sequence is the order in which the courses were created, not one the teacher sets, and a student can hold a course they cannot open yet.

  3. Decision 3

    A bundle is orders, not a record

    Buying a bundle makes one order for each course, so each keeps its own expiry, commission and teacher’s share, and appears in the lists and reports that already existed.

    Trade-off · Nothing ties those orders back to the bundle, so a report by bundle has to be rebuilt from the courses it contained.

  4. Decision 4

    A paid exam leads to its explanation

    A student who falls short is offered the solution at the moment they want it, and the teacher’s explanation becomes something a student can buy on its own.

    Trade-off · Every paid exam needs a solved-exam course first, which a teacher must record before the exam can be saved.

  • One discount at a timeFor a course the engine tries, in order, a valid coupon, the discount of the bundle the course is bought in, the course’s own fixed discount, and otherwise the plain price. Only the first that applies is used, nothing stacks, and the answer says which one it was.
  • Coupons with rulesA coupon is a percentage with a cap or a fixed amount. It has dates, a minimum purchase, a limit in total and per student, and can be limited to chosen students. It is checked when previewed and again when bought, recorded on use, and never takes a price below zero.
  • Bundles bought wholeAn admin builds a bundle from one teacher’s courses with a percentage or a fixed discount and optional dates, and its total is kept after the discount. Buying it checks that it is active and in date, refuses it if the student already holds every course, checks the wallet, and makes one order for each course.
  • Paid and solved examsAn exam is a test, a homework or a listening exercise, in a set or a random order, free or with a price and a discount. A solved exam is a video course of its own type that explains one, and a paid exam must be linked to one. Access to an exam is an order.
  • The order of studyA course opens only when the teacher’s earlier courses are finished; the first is always open, and a bundle’s courses open on purchase. Inside a lesson the order is homework, then the video, then listening. A locked page says what to finish first.
  • A wrong-answers limitA teacher sets a limit on an exam. On submitting, if the wrong answers reach it (an essay counts as wrong) and the exam has a solved course, the student is sent to that course with a message, and the result page offers the full solution.

05

Outcome

What we added to it.

During 2025 the platform gained exam, homework and listening tools, storage for video and files, comments, live meetings and, in December, one price engine with coupons, bundles, paid and solved exams, an unlock order and a wrong-answers limit. The original code base and its earlier years are not ours, and this page describes only what we added.

A teachers’ e-learning platform: a price engine, bundles, coupons and solved exams

Arrow keys or a swipe to move · Esc to close

Tell us what you’re building.

A short message is enough. A senior engineer replies within 1 working day.