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

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