A modern, interactive web application for planning your academic journey. Built with React, this tool helps students visualize course prerequisites, plan semester schedules, and track degree progress through an intuitive interface and interactive dependency graphs.
- Browse comprehensive course catalog with search and filtering
- View detailed course information, prerequisites, and descriptions
- Color-coded categories (Core, Elective, Math, Science, General)
- Real-time prerequisite validation
- Plan courses across 8 semesters (4-year degree)
- Drag-and-drop course scheduling with conflict detection
- Credit tracking per semester and overall
- Smart prerequisite checking prevents invalid scheduling
- Visual progress bars for degree requirements
- Credit breakdown by category
- Graduation timeline and completion percentage
- Summary statistics and milestone tracking
- D3.js-powered visualization of course relationships
- Interactive nodes showing prerequisite connections
- Semester-based positioning for planned courses
- Zoom, pan, and filter controls for easy navigation
- JSON-based course data (easily customizable)
- Export functionality for course plans
- Persistent planning across sessions
- No backend required - runs entirely in the browser
- Node.js 14+ and npm
- Modern web browser
- Clone or create the project:
npx create-react-app course-path-planner
cd course-path-planner- Install dependencies:
npm install lucide-react d3
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p- Configure Tailwind CSS:
Update
tailwind.config.js:
module.exports = {
content: ["./src/**/*.{js,jsx,ts,tsx}"],
theme: { extend: {} },
plugins: [],
}- Add Tailwind to CSS:
Replace
src/index.css:
@tailwind base;
@tailwind components;
@tailwind utilities;- Create the file structure:
src/
βββ components/
β βββ CoursePathPlanner.js
β βββ CourseGraph.js
βββ data/
β βββ courses.json
βββ App.js
βββ index.js
-
Add the component files (copy from provided artifacts)
-
Start the development server:
npm startVisit http://localhost:3000 to see your Course Path Planner!
course-path-planner/
βββ public/
β βββ index.html
βββ src/
β βββ components/
β β βββ CoursePathPlanner.js # Main application component
β β βββ CourseGraph.js # D3.js graph visualization
β βββ data/
β β βββ courses.json # Course data and requirements
β βββ App.js # Root component
β βββ App.css # Additional styles
β βββ index.js # Application entry point
βββ package.json
βββ tailwind.config.js
βββ README.md
- Search courses by name or ID using the search bar
- Filter by category using the dropdown menu
- Browse course cards showing details, prerequisites, and credits
- Color coding helps identify course types at a glance
- Add courses to semesters using the + button
- Remove courses with the Γ button
- View semester credits and course requirements
- Export your complete plan as JSON
- Visualize course prerequisites as an interactive network
- Toggle between showing all courses or planned courses only
- Zoom/Pan to navigate large graphs
- Click nodes for detailed course information
- Drag nodes to rearrange the layout
- Track progress toward degree requirements
- View credit breakdowns by category
- Monitor completion percentages
- Check graduation timeline and requirements
Edit src/data/courses.json to add courses:
{
"id": "CS999",
"name": "Advanced Topic",
"credits": 3,
"prerequisites": ["CS201", "CS220"],
"category": "Elective",
"semester": "Fall",
"description": "Course description here"
}Update the degreeRequirements section in courses.json:
"degreeRequirements": {
"totalCredits": 120,
"coreCredits": 45,
"electiveCredits": 30,
// ... other requirements
}Modify semesterTemplates to change the number of semesters or dates:
"semesterTemplates": {
"1": { "semester": "Fall 2024", "courses": [] },
// ... add more semesters
}- Color-coded borders by category
- Prerequisite validation with visual feedback
- Credit display and course details
- Interactive buttons for planning actions
- D3.js force simulation for natural node positioning
- Color-coded nodes matching course categories
- Arrow connections showing prerequisite relationships
- Semester guides for planned course organization
- React 18.2+ - Component-based UI framework
- Tailwind CSS - Utility-first CSS framework
- D3.js - Data visualization library
- Lucide React - Beautiful icon library
- Client-side only - No backend required
- JSON data storage - Fast loading and easy to modify
- Optimized rendering - Efficient React patterns
- Responsive design - Works on all device sizes
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- React Team for the excellent framework
- Tailwind CSS for beautiful, utility-first styling
- D3.js Community for powerful data visualization tools
- Lucide for clean, consistent icons
If you encounter any issues or have questions:
- Check the troubleshooting section above
- Search existing GitHub issues
- Create a new issue with detailed information
Happy Planning! π Build your perfect academic roadmap with Course Path Planner.