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.