Education Case study
Scuela: e-learning marketplace and academies
A Vue.js and Laravel platform for courses, webinars and memberships, with Stripe and PayPal payments, multi-level affiliates and academies on their own subdomains.

Overview
Scuela is an e-learning marketplace where instructors sell courses and webinars, students buy and follow them, and administrators manage everything. We recovered the frontend, built out the Laravel API and added the commerce, affiliate and multi-academy (Scuela Academy) features over almost three years.
The challenge
Each academy needed its own subdomain, branding, content and users on one codebase, while money moved through several parties: purchases, subscriptions, affiliate commissions and withdrawals. Search visibility also had to work for a Vue single-page app.
What we built
- Recovered and redeployed the Vue.js frontend, with Laravel REST APIs for users, courses and content delivery
- Course and webinar features: drag-and-drop sections and lessons, ratings, feedback and timezone-aware scheduling
- Payments with PayPal and Stripe, including refunds and Strong Customer Authentication
- Monthly and yearly membership plans with Stripe subscriptions and status-check cron jobs
- A multi-level affiliate system with referral codes, commissions, payment requests and reports
- Multi-academy support with subdomains, a UI to manage virtual hosts, branding and per-academy CMS
- Email templating in several languages for approvals, payments and webinar reminders
- Admin reporting on users, commissions and course and webinar revenue
- Server-side rendering for dynamic meta tags, image optimization and security fixes
- Academy owners buy a plan and publish their own academy, with its own about, policy and terms pages on a subdomain created automatically
- Scheduled jobs that chase pending billings and recalculate recurring commissions
- An interface and emails in Spanish and English
- Plan prices that the main administrator can update at any time, so new academy owners buy at the latest prices
- Several academies per owner under one email: all academies run on subdomains over a single-database architecture
- An Enterprise plan where academy owners connect their own Stripe credentials and manage their own billing
- Publishing control for the main administrator over courses and webinars, with full access to users and instructor content
How a system like this fits together
- Client side
- Services
- Data stores
- Third parties
In words: The Vue.js front end, built with Vuetify and serving academies on their own subdomains, calls a Laravel REST API for users, courses and content. The API stores data in MySQL and takes payments through Stripe, including subscriptions, refunds and Strong Customer Authentication, and through PayPal. Scheduled cron jobs check Stripe subscription status, chase pending billings and recalculate recurring commissions in the database. The stack also names AWS for cloud infrastructure.
Technology used
| Layer | Choice | Purpose |
|---|---|---|
| Cloud | AWS | cloud infrastructure |
| Front end | Vue.js, Vuetify, Sass | course, webinar and academy interface |
| Back end | Laravel (PHP) | REST APIs for users, courses and content delivery |
| Database | MySQL | application data |
| Payments | Stripe | subscriptions, refunds and Strong Customer Authentication |
| Payments | PayPal | course and membership payments |
| Scheduled jobs | Cron jobs | subscription status checks, pending billings and commissions |
| Rendering | Nuxt.js (evaluated) | evaluated for server-side rendering; the stack lists it as evaluated only |
What happened next
- Delivered
The work described above was delivered to the client.
- Operational facts
- Our work on this project spanned 2020–2023.
- It was maintained and extended over 3 years.
Screens

Could this be your project?
- You need a web application with user accounts, admin tools and reporting. Website and web app development
- Your product has to connect to payment, accounting, messaging or other third-party systems.
- You work in education and want a team that has built for it before. Education work
Questions about this project
How long did this project take?
Our work on it ran from 2020 to 2023, with 4,000+ engineering hours logged in total.
What technology was used?
AWS, Vue.js, Vuetify, Laravel, MySQL, Stripe, PHP, PayPal, Nuxt.js (evaluated), Sass.
Was it maintained and extended over time?
Yes. Our work on this project was maintained and extended over 3 years, from 2020 to 2023.
Similar work

Also AWS and PHP, also a web app
QCare: compliance platform for DEKRA
QCare, DEKRA's quality, compliance and risk evaluation platform on the Collabtic service platform: certification and compliance tracking, organisations, training, shop certification and headquarters dashboards, on an Angular front end and a PHP API.

Also PHP and MySQL, also a web app
Insurance-ordering online store for a medical supplier
A PrestaShop store for breast pumps and accessories with insurance-covered ordering flows, a multi-step checkout, FSA and Tricare support and payment gateways.

Also PHP and MySQL, also a web app
My Taxi Ride: taxi dispatch and booking platform
Passenger and driver apps for iOS and Android, a dispatch admin panel with reporting, APIs, SIP calling and the public website for the My Taxi Ride dispatch system, built over four years.
