Keep the frontend and operational backend separated
The platform had enough admissions and management behavior that some responsibilities were already centralized behind a separate API service.
Fold all logic into the frontend repositoryKeep the frontend thin and backend-drivenMix both styles inconsistently per page
Decision
I worked with the split architecture and kept the frontend responsible for the role-specific product surface while backend actions continued to flow through the dedicated API service.
Tradeoff: A separate backend increases integration points and makes frontend reliability partially dependent on another deployment.
Impact: The product could support more operational workflows without forcing every concern into the Next.js app.
Organize the experience around role-specific portals
Applicants, administrators, students, and faculty do not need the same mental model or screen hierarchy.
One generic dashboard with conditional widgetsDistinct role-oriented flowsSeparate standalone apps per role
Decision
I treated the platform as one product with clearly separated role-specific surfaces instead of one overloaded dashboard.
Tradeoff: This increases navigation and state complexity, especially when roles have materially different workflows.
Impact: The platform feels closer to an actual ERP-style tool than to a single-user education portal.
Include operational admin tools, not just presentation pages
Admissions and institutional workflows create friction when the product stops at display pages and ignores admin handling.
Focus only on public or student-facing viewsShip partial admin supportBuild end-to-end operational surfaces such as applicant management and QR-based scanning
Decision
I included practical admin tools in the product surface so the platform reflected real institutional operations.
Tradeoff: Operational tools are less glamorous than public-facing pages and demand more careful workflow design.
Impact: The project reads as a systems build, not only a marketing or portal frontend.