How mazinsafer/coogpath works
CoogPath is a student-facing degree-planning application: students register, record completed coursework and planning preferences, inspect degree progress, and request a semester-by-semester roadmap. The backend exposes authentication, student, catalog, requirement, and planning APIs; its planner accounts for prerequisites, planning mode, summer availability, and electives, and persists generated roadmaps. The frontend also provides catalog, transcript, and dashboard views. The README documents PDF export and track/capstone options. Several frontend-to-API details and unsampled controller internals are not shown, so those links are omitted or marked unverified.
Main entry points: api.ts API client · repository Data repositories · PlanGeneratorService.java Plan generator · StudentController.java Student API
Components 22
Student experience
- Registration
frontend/src/app/signup/page.tsx - Sign in
frontend/src/app/login/page.tsx - Course preferences
frontend/src/app/courses/page.tsx - Roadmap dashboard
frontend/src/app/dashboard/page.tsx - Requirements view
frontend/src/app/requirements/page.tsx - Course catalog
frontend/src/app/catalog/page.tsx - Transcript view
frontend/src/app/transcript/page.tsx - API client
frontend/src/lib/api.ts
API and identity
- Authentication API
backend/src/main/java/com/coogpath/coogpath/controller/AuthController.java - Student API
backend/src/main/java/com/coogpath/coogpath/controller/StudentController.java - Registration service
backend/src/main/java/com/coogpath/coogpath/service/StudentService.java - Course API
backend/src/main/java/com/coogpath/coogpath/controller/CourseController.java - Course service
backend/src/main/java/com/coogpath/coogpath/service/CourseService.java - Progress API
backend/src/main/java/com/coogpath/coogpath/controller/RequirementController.java - Plan API
backend/src/main/java/com/coogpath/coogpath/controller/PlanController.java - Degree program API
backend/src/main/java/com/coogpath/coogpath/controller/DegreeProgramController.java
Degree data
- Degree and course data
backend/src/main/java/com/coogpath/coogpath/model - Student and transcript data
backend/src/main/java/com/coogpath/coogpath/model - Data repositories
backend/src/main/java/com/coogpath/coogpath/repository
Roadmap planning
- Plan generator
backend/src/main/java/com/coogpath/coogpath/service/PlanGeneratorService.java - Saved roadmap data
backend/src/main/java/com/coogpath/coogpath/model/RoadmapSnapshot.java
Other components
- Student
Connections 28
- Student → Registration: registers
- Student → Sign in: signs in
- Student → Course preferences: sets coursework
- Student → Roadmap dashboard: views plan
- Student → Requirements view: checks progress
- Student → Course catalog: browses courses
- Student → Transcript view: views transcript
- Registration → API client: uses
- Sign in → API client: uses
- Course preferences → API client: uses
- Roadmap dashboard → API client: uses
- Requirements view → API client: uses
- Course catalog → API client: uses
- Transcript view → API client: uses
- Authentication API → Data repositories: looks up students
backend/src/main/java/com/coogpath/coogpath/controller/AuthController.java - Student API → Registration service: registers through
backend/src/main/java/com/coogpath/coogpath/controller/StudentController.java - Registration service → Data repositories: saves student
backend/src/main/java/com/coogpath/coogpath/service/StudentService.java - Course API → Course service: delegates to
backend/src/main/java/com/coogpath/coogpath/controller/CourseController.java - Course service → Data repositories: loads courses
backend/src/main/java/com/coogpath/coogpath/service/CourseService.java - Progress API → Data repositories: loads progress data
backend/src/main/java/com/coogpath/coogpath/controller/RequirementController.java - Plan API → Plan generator: generates plan
backend/src/main/java/com/coogpath/coogpath/controller/PlanController.java - Degree program API → Data repositories: loads programs
backend/src/main/java/com/coogpath/coogpath/controller/DegreeProgramController.java - Plan generator → Data repositories: reads planning data
backend/src/main/java/com/coogpath/coogpath/service/PlanGeneratorService.java - Plan generator → Saved roadmap data: saves roadmap
backend/src/main/java/com/coogpath/coogpath/service/PlanGeneratorService.java - Student API → Data repositories: reads and updates
backend/src/main/java/com/coogpath/coogpath/controller/StudentController.java - Progress API → Student and transcript data: computes completion
backend/src/main/java/com/coogpath/coogpath/controller/RequirementController.java - Plan generator → Student and transcript data: uses transcript
backend/src/main/java/com/coogpath/coogpath/service/PlanGeneratorService.java - Plan generator → Degree and course data: checks prerequisites
backend/src/main/java/com/coogpath/coogpath/service/PlanGeneratorService.java