An AI-powered course scheduling system for University of Rochester students that generates optimized academic plans while considering major requirements, cluster requirements, and graduation criteria.
-
Major Track Support
- Computer Science
- Mathematics
- Financial Economics
-
Intelligent Schedule Generation
- Automatic prerequisite validation
- Time conflict resolution
- Credit requirement tracking
- Division/cluster requirement handling
-
Division & Cluster Management
- Natural Sciences and Engineering
- Humanities
- Social Sciences
- 3-course cluster validation
- Cross-division requirement tracking
-
Schedule Optimization
- Prioritizes major declaration prerequisites
- Balances core courses with clusters
- Strategic elective placement
- Considers completed coursework
- Python 3.8+
- Flask
- OpenAI API key
- Pandas 2.2.0+
- Modern web browser
-
Clone the repository:
git clone https://github.com/novarii/ur-course-compass.git
-
Navigate to the project directory:
cd ur-course-compass -
Set up a virtual environment (recommended):
python -m venv venv # On Unix or MacOS: source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Configure environment variables:
# Create .env file cp .env.example .env # Add your OpenAI API key to .env OPENAI_API_KEY=your_api_key_here
-
Start the application:
python app.py
-
Access the application at http://localhost:5000
-
Input Your Information
- Select your major
- Indicate cluster interests
- Enter completed courses
- Specify graduation year
-
Generate Schedule
- System analyzes requirements
- Creates optimized schedule
- Validates all constraints
- Provides alternative options
-
Review and Modify
- View generated schedule
- Check requirement satisfaction
- Request modifications if needed
- Export schedule
pytest tests/We follow PEP 8 guidelines. Run flake8 before committing:
flake8 src/- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m "Add amazing feature" - Push to your branch:
git push origin feature/amazing-feature
- Open a Pull Request
-
POST /api/generate-schedule- Generates course schedule based on student input
- Requires student data in JSON format
-
GET /api/validate-schedule- Validates existing schedule
- Returns validation results and suggestions
The system provides detailed error messages for:
- Invalid major selection
- Prerequisite violations
- Time conflicts
- Credit requirement issues
- Division/cluster requirement violations
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Open an issue in the GitHub repository
- Contact the development team at [[email protected]]
- University of Rochester Computer Science Department
- Contributors and maintainers
- All students providing valuable feedback
Made with ❤️ for University of Rochester students