Skip to content

Sherry1247/CourseOptimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CourseOptimizer 🎓

A unified course optimization network connecting 200M+ university students worldwide with 25,000+ accredited universities and colleges.

📋 Table of Contents

🎯 About

CourseOptimizer is an intelligent course planning platform designed to help university students navigate the complex process of course selection and degree planning. Whether you're pursuing a single major or double major, CourseOptimizer streamlines your academic journey through data-driven recommendations and optimization algorithms.

Key Statistics

  • 200M+ university students worldwide
  • 25,000+ accredited universities & colleges
  • Connected through a unified course optimization network

🚨 The Problem

Students face significant challenges in course planning:

  • 67% of students report difficulty planning courses
  • 42% of double-major students take unnecessary credits
  • Average student spends 10-20 hours/semester researching courses
  • 10%+ delay graduation due to misplanned requirements

💡 Solution

CourseOptimizer addresses these challenges through a three-layer architecture that creates a closed-loop, intelligent course planning experience.

✨ Features

Interactive Demo

  • 6-step guided process to plan your complete 4-year course schedule
  • Intuitive interface for entering academic standing and completed credits
  • Real-time schedule generation and optimization

Data Integration

  • Course Graph: Complete course dependency mapping
  • Madgrades: Grade distribution visualization for UW-Madison courses
  • RateMyProfessors: Professor ratings and reviews
  • Course Offering Frequency: Historical data on course availability

Intelligent Optimization

  • Constraint satisfaction algorithms
  • Multi-objective optimization
  • Adaptive learning based on user preferences
  • Personalized course recommendations

🏗️ Architecture

CourseOptimizer uses three core layers to create a closed-loop experience:

1. Top Layer (User Layer)

  • Import major requirements
  • Set personal preferences
  • Define academic goals and constraints

2. Middle Layer (Data Layer)

  • Course graph and prerequisites
  • Madgrades grade distributions
  • RateMyProfessors ratings
  • Course offering frequency data

3. Bottom Layer (Intelligence Layer)

  • Constraint satisfaction algorithms
  • Multi-objective optimization
  • Adaptive learning
  • Schedule generation and validation

🛠️ Technologies

  • Frontend: [Add your frontend technologies]
  • Backend: [Add your backend technologies]
  • Database: [Add your database]
  • APIs:
    • RateMyProfessors API
    • Madgrades API
    • [Other APIs]
  • Algorithms: Constraint Satisfaction, Multi-objective Optimization

🚀 Getting Started

Prerequisites

# List prerequisites here
node >= 14.0.0
npm >= 6.0.0

Installation

# Clone the repository
git clone https://github.com/Sherry1247/CourseOptimizer.git

# Navigate to project directory
cd CourseOptimizer

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Edit .env with your configuration

# Run the application
npm start

📖 Usage

For Students

  1. Create an account or log in
  2. Enter your information:
    • Current academic standing (Freshman, Sophomore, etc.)
    • Major(s) and minor(s)
    • Completed credits
  3. Set your preferences:
    • Preferred professors
    • Course difficulty balance
    • Schedule preferences (morning/afternoon/evening)
  4. Generate your schedule:
    • View optimized 4-year plan
    • Make adjustments as needed
    • Export to your calendar

For Universities

CourseOptimizer can be integrated into your institution's academic advising system. Contact us for institutional partnerships.

🤝 Contributing

We welcome contributions from the community! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style
  • Write clear commit messages
  • Add tests for new features
  • Update documentation as needed

📊 Related Projects

  • RMP (RateMyProfessors): Professor rating integration
  • Madgrades: UW-Madison grade distribution visualizer
  • Enroll Badge: Course enrollment tracking

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

👥 Team

  • Mckenna Xiang, Siqi Dai, Yinan Feng

🙏 Acknowledgments

  • RateMyProfessors for providing professor rating data
  • Madgrades for UW-Madison grade distributions
  • All contributors who have helped shape this project
  • The academic community for valuable feedback

🗺️ Roadmap

  • Mobile app development (iOS/Android)
  • Integration with more universities
  • AI-powered course recommendations
  • Study group matching feature
  • Career path optimization
  • International university support

Made with ❤️ for students, by students

Helping 200M+ students worldwide plan their academic journey

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors