Degree Overlap Visualizer
A React-based web application that helps community college students visualize how their completed courses apply to multiple associate degree programs.
Features
- Input completed courses manually or via CSV import
- View progress across multiple degree programs
- Visualize course overlap between degrees
- Plan future semesters with "what-if" scenarios
- Track remaining requirements for each degree
Tech Stack
- React 18 with Vite
- Tailwind CSS for styling
- Recharts for data visualization
- Local storage for data persistence
Getting Started
Prerequisites
- Node.js 16.x or later
- npm 7.x or later
Installation
- Clone the repository:
git clone https://github.com/yourusername/degree-overlap-mvp.git
cd degree-overlap-mvp
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Open http://localhost:3000 in your browser.
Usage
-
Add Completed Courses
- Use the course form to add individual courses
- Or import courses from a CSV file (see
public/sample-courses.csv
for format)
-
Select Degree Programs
- Choose from the available degree programs in the sidebar
- View progress and requirements for each selected degree
-
View Visualizations
- Progress: See completion percentage for each degree
- Course Overlap: Identify courses that count toward multiple degrees
- Distribution: View how courses apply to different requirement categories
- Timeline: Plan future semesters with recommended courses
-
Plan Ahead
- Use the timeline view to plan future semesters
- Add potential courses to see their impact on degree progress
- Get recommendations for optimal course selection
Data Structure
Course Format
{
id: "unique-id",
code: "ENG101",
name: "English Composition",
credits: 3,
grade: "A", // optional
semester: "Fall 2023", // optional
}
CSV Import Format
code,name,credits,grade,semester
ENG101,English Composition I,3,A,Fall 2023
Development
Project Structure
degree_overlap_mvp/
├── src/
│ ├── components/ # React components
│ ├── data/ # Sample data and configurations
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Utility functions
│ └── styles/ # Global styles
└── public/ # Static assets
Available Scripts
-
npm run dev
- Start development server -
npm run build
- Build for production -
npm run preview
- Preview production build -
npm run lint
- Run ESLint -
npm run test
- Run tests
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.