A Chrome extension that helps University of the Philippines Diliman students optimize their class schedules by generating and ranking all possible course combinations.
🔗 Download from Chrome Web Store
- ✅ Schedule Generation: Automatically generates all possible schedule combinations from your selected courses with respect to the filters (so it would prune out as many branches as possible in the backtracking algorithm)
- ✅ Visual & Table Views: View your schedules in both visual timetable and detailed table formats
- ✅ Time Conflict Prevention: Paint blocked time slots to avoid scheduling conflicts
- ✅ Professor Integration: Direct links to professor ratings via RUPP (Rate UP Professors)
- ✅ Probability Ranking: Schedules are ranked by combined enrollment probability
- ✅ Similar Shape Analysis: Groups schedules with similar time patterns for easy comparison
- ✅ Professor Filtering: Filter schedules by preferred professors (strict or flexible matching)
crscheduler-final-demo-compressed.mp4
Install the extension from the Chrome Web Store
Make sure you're logged into the UPD CRS system
Navigate to your desired courses in CRS and copy the URLs. The extension supports both:
- Preenlistment URLs:
https://crs.upd.edu.ph/preenlistment/... - Registration URLs:
https://crs.upd.edu.ph/student_registration/...(Still have to test this)
- Time Blocking: Click and drag on the time grid to block unavailable time slots
- Professor Filtering: Enter preferred professor names (comma-separated)
- Strict Matching: Toggle whether ALL specified professors must be present in each schedule
Paste your course URLs and click "Fetch & Generate Schedules"
- Use Table View for detailed information
- Use Visual View for timetable visualization
- Click Show Similar Shapes to group schedules by time patterns
- Click professor names to view ratings on RUPP
Frontend (Chrome Extension)
├── Content Scripts: CRS page scraping
├── Service Worker: Background processing
├── Web Workers: Schedule generation
└── Popup Interface: User interaction
- ✅ Minimal Permissions: Only requests necessary permissions for core functionality
- ✅ Local Processing: Schedule generation happens entirely in your browser (all client-sided)
- ✅ No Data Storage: No personal data is permanently stored
The extension uses the probability calculation algorithm from UPD Course Probability Calculator by drew-747, which is based on available slots and total demand.
All started just as a Python scraper + scheduler project (CRScraper).
- 🔄 Firefox Extension
- 🔄 Safari Extension
- 🔄 Better Heuristics
Found a bug or have a feature request? Please open an issue on our GitHub repository.
Made with ❤️ for UPD students