$ACT E-Learning Platform · Part 1

Building ACT E-Learning: Architecture Decisions

Published 4/18/2026

Part 1 on role-based LMS design, backend/frontend split, and why I chose this stack.

Why this project

I wanted to build a full-stack learning platform with a real workflow for students, instructors, and admins. The goal was to balance product clarity with maintainable backend rules.

Stack direction

I chose React + Vite for a fast frontend feedback loop, and Laravel for structured APIs and authentication.

// Example role guard concept used in frontend route handling
const canAccess = (role: 'student' | 'instructor' | 'admin', route: string) => {
	if (route.startsWith('/admin')) return role === 'admin';
	if (route.startsWith('/instructor')) return role === 'instructor' || role === 'admin';
	return true;
};

Lesson learned

Define role boundaries early. If roles are loosely defined at the beginning, every new feature introduces hidden authorization debt.

Image support

Example screenshot

ACT E-Learning course listing example

When adding screenshots, place images in public/blog/act-elearning/ and reference them like this:

![Dashboard screenshot](/blog/act-elearning/dashboard-v1.png)

Up next · Part 02

ACT E-Learning: Course Data Modeling and API Contracts

Part 2 placeholder covering course entities, enrollment flow, and API response shape decisions.

Not published yet Go to series