How neethuharii/arbormis_clone works
Purpose and runtime
Arbor MIS is a Symfony/PHP management-information system centered on students, staff, attendance, behaviour, points, and suspensions. HTTP enters through public/index.php, boots src/Kernel.php, and is dispatched via Symfony routing/configuration in config/routes.yaml and config/packages/framework.yaml.
Application boundary and presentation
Server-rendered Twig pages are the primary UI boundary. Controllers handle feature routes and render templates, with static JavaScript/CSS supporting interactive page behaviors:
• src/Controller/StudentController.php, templates/student/StudentProfile.html.twig
• src/Controller/AttendanceController.php, templates/Attendances/AttendanceRegisters.html.twig
• public/js/AttendanceRegisters.js, public/css/Attendance/AttendanceRegisters.css
Assets also use Symfony Asset Mapper/import maps and Stimulus/Turbo integration: assets/app.js, assets/stimulus_bootstrap.js, config/packages/ux_turbo.yaml.
Student and enrollment domain
Student records are a central aggregate, with related enrollment, guardians, addresses, funding, documents, and cards. The student controller/service layer mediates UI workflows and persistence access:
• src/Controller/StudentController.php, src/Service/StudentService.php
• src/Entity/Students.php, src/Entity/StudentEnrollments.php, src/Entity/Guardian.php
• src/Entity/StudentGuardianRelation.php, src/Entity/Fundings.php, src/Entity/Documents.php
Slideover templates represent modular editing flows for related student information, including UPN assignment, guardians, funding, identity documents, and addresses: templates/Slideover/assign-upn.html.twig, templates/Slideover/student-guardian.html.twig, templates/Slideover/EditFunding.html.twig.
Attendance workflow
Attendance management is modeled as registers, attendance records, and attendance codes. Request flow is controller → attendance service → Doctrine repositories/entities → rendered register or daily-attendance view:
• src/Controller/AttendanceController.php, src/Service/AttendanceService.php
• src/Entity/AttendanceRegisters.php, src/Entity/Attendances.php, src/Entity/AttendanceCodes.php
• templates/Attendances/DailyAttendances.html.twig, templates/Attendances/base_attendance.html.twig
Behaviour, points, and suspension workflow
Student conduct is split into incidents/behaviours, point awards, and suspension reporting/statistics. Feature-specific controllers/services separate these processes while sharing student-centered persistence:
• src/Controller/IncidentController.php, src/Service/IncidentService.php, src/Entity/BehaviourIncidents.php
• src/Controller/PointsController.php, src/Entity/StudentPoints.php, templates/Point-awards/total-points.html.twig
• src/Controller/SuspensionController.php, src/Service/SuspensionService.php, src/Entity/SuspensionDetails.php
Staff, identity, and authorization
Staff profiles, business roles, and user credentials form the operational identity boundary. Login is handled separately from domain controllers; Symfony Security supplies the authentication/authorization framework:
• src/Controller/LoginController.php, src/Service/LoginService.php, config/packages/security.yaml
• src/Controller/StaffController.php, src/Service/StaffService.php, src/Entity/Staffs.php
• src/Entity/Users.php, src/Entity/BusinessRoles.php, src/Entity/CurrentRoles.php
Persistence and infrastructure
Doctrine ORM maps entities to the relational database, repositories provide access boundaries, and the migration history is the schema evolution source of truth:
• config/packages/doctrine.yaml, config/packages/doctrine_migrations.yaml
• src/Repository/StudentsRepository.php, src/Repository/AttendancesRepository.php
• migrations/Version20260610062002.php, migrations/Version20260709053746.php
The repository includes Docker Compose deployment definitions (compose.yaml, compose.override.yaml), environment-specific configuration (.env, .env.dev, .env.test), fixture-based reference/seed data (src/DataFixtures/UserFixtures.php, src/DataFixtures/RoleFixture.php), and configured cache, mailer, messenger, notifier, logging, and translation integrations under config/packages/.
Main entry points: routes.yaml Routes & Framework · StudentsRepository.php Repositories · StudentController.php Student UI · AttendanceController.php Attendance UI
Components 21
Symfony Runtime
- HTTP Entry
public/index.php - Application Kernel
src/Kernel.php - Routes & Framework
config/routes.yaml
Presentation
- Student UI · Student profiles and related editing workflows.
src/Controller/StudentController.php - Attendance UI · Register and daily-attendance views.
src/Controller/AttendanceController.php - Interactive Assets
assets/app.js
Student Domains
- Student Service
src/Service/StudentService.php - Student Aggregate · Students, enrollments, guardians, funding, and documents.
src/Entity/Students.php - Attendance Service
src/Service/AttendanceService.php - Attendance Model · Registers, records, and codes.
src/Entity/AttendanceRegisters.php - Conduct Workflows · Incidents, point awards, and suspensions.
src/Service/IncidentService.php - Conduct Records · Behaviour incidents, student points, and suspension details.
src/Entity/BehaviourIncidents.php
Identity & Access
- Login Flow
src/Controller/LoginController.php - Security Framework · Authentication and authorization policy.
config/packages/security.yaml - Staff Service
src/Service/StaffService.php - Staff & User Identity · Staff profiles, users, business roles, and current roles.
src/Entity/Staffs.php
Persistence
- Repositories
src/Repository/StudentsRepository.php - Doctrine ORM
config/packages/doctrine.yaml - Relational Database
- Schema Migrations · Schema evolution source of truth.
migrations/Version20260610062002.php - Reference Fixtures · Seeds users and roles.
src/DataFixtures/UserFixtures.php
Connections 25
- HTTP Entry → Application Kernel: boots
- Application Kernel → Routes & Framework: loads
- Routes & Framework → Student UI: dispatches
- Routes & Framework → Attendance UI: dispatches
- Routes & Framework → Login Flow: dispatches
- Routes & Framework → Conduct Workflows: feature routes
- Student UI → Student Service: student workflows
- Student UI → Interactive Assets: enhanced by
- Attendance UI → Attendance Service: register workflow
- Attendance UI → Interactive Assets: register behavior
- Student Service → Student Aggregate: manages
- Attendance Service → Attendance Model: manages
- Conduct Workflows → Conduct Records: records
- Conduct Records → Student Aggregate: belongs to students
- Login Flow → Security Framework: authenticates through
- Staff Service → Staff & User Identity: manages
- Security Framework → Staff & User Identity: authorizes users and roles
- Student Aggregate → Repositories: accessed via
- Attendance Model → Repositories: accessed via
- Conduct Records → Repositories: accessed via
- Staff & User Identity → Repositories: accessed via
- Repositories → Doctrine ORM: uses
- Doctrine ORM → Relational Database: maps to
- Schema Migrations → Relational Database: evolves schema
- Reference Fixtures → Relational Database: seeds