PROJECT SUMMARY Scrapes course data, builds a prerequisite graph, analyzes issues, optimizes a term by term plan, and exports .pkl artifacts for the UI to load. Inputs raw course pages. Outputs files like neu_graph_fixed_prereqs.pkl. HIGHLIGHTS * purpose make course planning fast and correct * artifacts .pkl, _fixed.pkl, graph.pkl, neu_graph_clean.pkl, neu_graph_clean3.pkl, neu_graph_clean6.pkl, neu_graph_fixed.pkl, neu_graph_ultra_clean.pkl, neu_merged_courses_...pkl, neu_merged_graph_...pkl * stack python, ast, simple web io DATA FLOW ```mermaid flowchart LR ui --> curriculum_optimizer ui --> interactive_visualizer ``` KEY MODULES | module | role | top functions | |---|---|---| | agentic_optimizer | Optimizes course plan | main | | curriculum_analyzer | Analyzes graph and flags issues | get_course_level main | | curriculum_optimizer | Optimizes course plan | | | inspect_graph | Deep inspection and fixes | inspect_graph_thoroughly suggest_fix_commands | | interactive_visualizer | Interactive graph viewer | | | neu_scraper | Scrapes course pages | main | | ui | Simple UI to load artifacts | get_optimizer export_plan_yaml check_requirements_satisfaction | AGENTIC_OPTIMIZER | function | signature | brief | |---|---|---| | main | `main()` | Main entry | CURRICULUM_ANALYZER | function | signature | brief | |---|---|---| | get_course_level | `get_course_level(cid)` | Extracts the numerical part of a course ID for level checking. | | main | `main(args)` | Main execution flow. | INSPECT_GRAPH | function | signature | brief | |---|---|---| | inspect_graph_thoroughly | `inspect_graph_thoroughly(graph_file)` | Complete inspection of curriculum graph data | | suggest_fix_commands | `suggest_fix_commands(graph_file)` | Suggest specific commands to fix issues | NEU_SCRAPER | function | signature | brief | |---|---|---| | main | `main()` | Main entry | UI | function | signature | brief | |---|---|---| | get_optimizer | `get_optimizer()` | Loads and caches the main optimizer class and its models. | | export_plan_yaml | `export_plan_yaml(plan, profile, validation)` | Export plan in structured YAML format for verification | | check_requirements_satisfaction | `check_requirements_satisfaction(plan, track)` | Check which requirements are satisfied by the plan | IO ARTIFACTS * .pkl * _fixed.pkl * graph.pkl * neu_graph_clean.pkl * neu_graph_clean3.pkl * neu_graph_clean6.pkl * neu_graph_fixed.pkl * neu_graph_ultra_clean.pkl * neu_merged_courses_...pkl * neu_merged_graph_...pkl QUICK START 1. create env and install deps 2. run one of: python agentic_optimizer.py python curriculum_analyzer.py python inspect_graph.py python neu_scraper.py