Back to Blog
Building Student Helper for course progression planning
•Emmanouil Athanasopoulos•1 min read•220 words
AngularEducationGraph AlgorithmsPlanning
The Motivation Behind the Project
Student Helper was built to help IT students at my university understand how different courses connect to degree completion. The idea was to turn a difficult planning problem into something more navigable and less stressful.
Core Features and Design Goals
- Course progression paths: students can see how courses fit into a larger plan.
- Degree planning support: the app helps reduce uncertainty around what to take next.
- Responsive interface: the planning flow stays usable across screen sizes.
Technical Implementation
- Built a prerequisite dependency graph that models course relationships as a directed acyclic graph, allowing the UI to visualize which courses unlock others and compute optimal semester-by-semester progression paths.
- Implemented Angular reactive forms for course selection with dynamic validation — preventing students from selecting courses whose prerequisites haven't been completed, with real-time feedback on credit totals and remaining requirements.
- Designed a multi-semester planning view with drag-and-drop reordering using Angular CDK, letting students experiment with different course arrangements and see how each choice affects their graduation timeline.
The Technology Stack
Built with Angular, TypeScript, and Bootstrap. Uses Angular's reactive forms with custom validators for prerequisite checking, Angular CDK for drag-and-drop interactions, and a prerequisite graph model that drives the entire planning logic.
Final Reflections
The project shows how software can remove friction from a very specific real-world decision.