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.

Scuela: e-learning marketplace and academies: website
Client
Scuela
Service
Web apps, Integrations
Years
2020–2023 (3 years)
Stack
AWS, Vue.js, Vuetify, Laravel and 6 more
Platforms
Web

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

  1. Recovered and redeployed the Vue.js frontend, with Laravel REST APIs for users, courses and content delivery
  2. Course and webinar features: drag-and-drop sections and lessons, ratings, feedback and timezone-aware scheduling
  3. Payments with PayPal and Stripe, including refunds and Strong Customer Authentication
  4. Monthly and yearly membership plans with Stripe subscriptions and status-check cron jobs
  5. A multi-level affiliate system with referral codes, commissions, payment requests and reports
  6. Multi-academy support with subdomains, a UI to manage virtual hosts, branding and per-academy CMS
  7. Email templating in several languages for approvals, payments and webinar reminders
  8. Admin reporting on users, commissions and course and webinar revenue
  9. Server-side rendering for dynamic meta tags, image optimization and security fixes
  10. Academy owners buy a plan and publish their own academy, with its own about, policy and terms pages on a subdomain created automatically
  11. Scheduled jobs that chase pending billings and recalculate recurring commissions
  12. An interface and emails in Spanish and English
  13. Plan prices that the main administrator can update at any time, so new academy owners buy at the latest prices
  14. Several academies per owner under one email: all academies run on subdomains over a single-database architecture
  15. An Enterprise plan where academy owners connect their own Stripe credentials and manage their own billing
  16. 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

Scuela: e-learning marketplace and academies: Vue front end, Laravel API, Stripe billing and scheduled jobsThe 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.paymentsstatus checkscommissionsVue.js front endVuetify, academieson subdomainsLaravel REST APIusers, courses,contentScheduled jobsbilling checks,commissionsMySQLStripesubscriptions,refundsPayPalpaymentsAWScloudinfrastructureScuela: e-learning marketplace and academies: Vue front end, Laravel API, Stripe billing and scheduled jobsThe 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.ClientsServicesData and third partiesVue.js front endVuetify, academies onsubdomainsLaravel REST APIusers, courses, contentScheduled jobsbilling checks, commissionsMySQLStripesubscriptions, refundsPayPalpaymentsAWScloud infrastructure
  • Client side
  • Services
  • Data stores
  • Third parties
Vue front end, Laravel API, Stripe billing and scheduled jobs. Reference architecture for a system of this kind, based on the technology used. Simplified; not a client schematic.

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

Technology named in the project records, by layer
LayerChoicePurpose
CloudAWScloud infrastructure
Front endVue.js, Vuetify, Sasscourse, webinar and academy interface
Back endLaravel (PHP)REST APIs for users, courses and content delivery
DatabaseMySQLapplication data
PaymentsStripesubscriptions, refunds and Strong Customer Authentication
PaymentsPayPalcourse and membership payments
Scheduled jobsCron jobssubscription status checks, pending billings and commissions
RenderingNuxt.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

Request similar 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

QCare: quality, compliance and risk evaluation. Modules: OE certification and compliance, programme tracking and workflow, training and people management, quality field tool, facility and asset management, holistic network management. DEKRA.

Also AWS and PHP, also a web app

QCare: compliance platform for DEKRA

  • Business software and compliance
  • Operations and facility management
  • Web apps
  • Integrations

2024–2026

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.

Insurance-ordering online store for a medical supplier screenshot

Also PHP and MySQL, also a web app

Insurance-ordering online store for a medical supplier

  • Retail and eCommerce
  • Healthcare
  • eCommerce
  • Web apps
  • Integrations

2014–2021

A PrestaShop store for breast pumps and accessories with insurance-covered ordering flows, a multi-step checkout, FSA and Tricare support and payment gateways.

My Taxi Ride: taxi dispatch and booking platform screenshot

Also PHP and MySQL, also a web app

My Taxi Ride: taxi dispatch and booking platform

  • Logistics and transport
  • Operations and facility management
  • Mobile apps
  • Web apps
  • Integrations

2013–2016

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.

Building something similar?

Tell us what you need and your industry. We will tell you what is realistic, what it would take, and show you the closest work we have done.

Are you ready to partner with us?

Our good-natured team is waiting to hear your business requirements.

Book a free project call