Skip to content
Vichet Sat
All projects

PUC-IFL Enrollment & Academic System

An enrollment and academic management system for PUC-IFL — from online applications and placement tests to class division, attendance and schedules.

database entities
27database entities
user roles: admin, teacher, student
3user roles: admin, teacher, student
tests with Playwright
E2Etests with Playwright

Internal project for my workplace — the source code is private.

localhost

Overview

A system for PUC-IFL that handles new students from their first application to their first class. The project has a Vue 3 + TypeScript frontend and a separate Laravel 12 REST API with a MySQL database of 27 entities. Before coding, we wrote planning documents — architecture, database design and a task list — and then built the system module by module.

What I built

  • Online applications with Excel import, and a placement test with a strict test mode, question bank, reading passages and test templates.
  • English level assignment and class division, with QR-code invitations for students.
  • QR-based attendance sessions, class schedules and student ID management.
  • Holiday import and sync from Google Calendar.
  • Real-time notifications with Laravel Reverb (WebSockets) and a password reset flow.
  • Roles and permissions (RBAC), audit logs, reports and data export.
  • Separate screens for admins, teachers and students, and responsive layouts for phones.

Challenges

  • Error messages were too generic, so users didn’t know why a class assignment or an application was rejected. I changed the frontend to show the real reason returned by the API.
  • Several pages broke on small phone screens. I reworked the login page and dashboard, and replaced a wide table with a card list on phones.

What I learned

  • Writing the database design and task list before coding made a big system much easier to build step by step.
  • Automated tests (Playwright end-to-end tests, Vitest and PHPUnit) catch problems before they reach users.