A web application for visualizing and planning your college degree course schedule across multiple years and semesters.
Built by a Georgia Tech CS student to help fellow students plan their degree requirements visually.
Live Demo: https://degreemap.vercel.app
- Multi-Year Planning: Organize courses across multiple academic years
- Semester Organization: Plan courses for Fall, Spring, and Summer semesters
- Course Bank: Store and manage courses before placing them in specific semesters
- Course Management: Add, edit, and delete courses with detailed information
- Credit Tracking: Automatically calculates and displays credit hours per year, per semester, and total
- Auto-Save: All changes automatically saved to browser localStorage
- Framework: Next.js 16 with App Router and React 19
- Language: TypeScript for type safety
- Styling: Tailwind CSS 4 for utility-first, responsive styling
- State Management: Zustand for global state management
- Data Persistence: localStorage via Zustand persist middleware
- UI Components: Custom components with responsive design
- Node.js 20 or higher
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/0zzy4/DegreeMap.git
cd degree-map- Install dependencies:
npm install- Run the development server:
npm run dev- Open http://localhost:3000 in your browser
npm run dev- Start the development servernpm run build- Build the application for productionnpm start- Start the production servernpm run lint- Run ESLint for code quality checks
src/
├── app/ # Next.js app directory
│ ├── page.tsx # Main application page
│ ├── layout.tsx # Root layout component
│ └── globals.css # Global styles
├── components/ # React components
│ ├── Year.tsx # Year container component
│ ├── Semester.tsx # Semester component
│ ├── SemesterGrid.tsx # Grid layout for all years
│ ├── CourseBank.tsx # Course storage component
│ ├── CourseTile.tsx # Individual course card
│ └── ui/ # UI components
├── store/ # Zustand state management
│ └── courseStore.ts # Course state and actions
└── types/ # TypeScript type definitions
└── Course.ts # Course interface
All course data is automatically saved to your browser's localStorage under the key course-storage. Your data will persist across browser sessions, but note that:
- Data is stored locally in your browser
- Clearing browser data will remove your saved courses
- Data is not synchronized across different browsers or devices
- Course type color coding (Core, Major, Elective)
- Drag-and-drop course reordering
Private project - All rights reserved
Found a bug or have a suggestion? Open an issue