Skip to content

Version 2.4.3: Course Code Filtering & Enhanced FastAPI Server

Latest

Choose a tag to compare

@Rain6435 Rain6435 released this 30 Aug 00:32
· 17 commits to dev since this release

🚀 New Features

Course Code Filtering

  • Specific Course Queries: Filter live courses by exact course codes using the new course_codes parameter
  • Flexible Formatting: Supports various formats (COMP1001, COMP 1001, case insensitive)
  • Multiple Courses: Query multiple specific courses with comma-separated values
  • Cross-Subject Support: Filter courses from different subjects in a single request

FastAPI Server Enhancements

  • Enhanced Live Courses Endpoint: /universities/{university}/live-courses now supports course code filtering
  • Complete Parameter Set: term, year, subjects, course_codes, limit, include_ratings
  • Comprehensive Documentation: Updated API docs with usage examples and parameter descriptions

🔧 Technical Improvements

Virtual Environment Support

  • Environment Boundary Enforcement: Respects virtual environment boundaries for asset discovery
  • Proper Asset Resolution: Fixed asset path resolution when installed via pip in virtual environments
  • Cross-Platform Compatibility: Works correctly in development and production environments

Discovery Service Enhancements

  • Unified Asset Discovery: CarletonDiscovery now uses centralized discovery service
  • Improved Path Resolution: Better handling of package installation paths
  • Virtual Environment Priority: Prioritizes venv assets over system-wide installations

📚 Documentation Updates

API Response Formats

  • New Course Filtering Section: Complete documentation for course_codes parameter
  • Usage Examples: Four common use cases with practical examples
  • Parameter Reference: Complete parameter documentation for all endpoints
  • Version Updates: Updated to reflect version 2.4.3

💻 Usage Examples

Get Specific Course

curl "http://localhost:8000/universities/carleton/live-courses?term=fall&year=2025&subjects=COMP&course_codes=COMP1001&include_ratings=true"

Multiple Specific Courses

curl "http://localhost:8000/universities/carleton/live-courses?term=fall&year=2025&subjects=COMP&course_codes=COMP1001,COMP1005&include_ratings=true"

Cross-Subject Filtering

curl "http://localhost:8000/universities/carleton/live-courses?term=fall&year=2025&subjects=COMP,MATH&course_codes=COMP1001,MATH1007&include_ratings=true"

🛠️ Installation

pip install schedulo-api==2.4.3
schedulo-api --university carleton server --port 8000

Access API documentation at: http://localhost:8000/docs

🐛 Bug Fixes

  • Fixed virtual environment asset discovery issues
  • Resolved package installation path problems
  • Fixed CarletonDiscovery catalog loading when installed via pip

📦 Dependencies

  • FastAPI for REST API framework
  • Uvicorn for ASGI server
  • Pydantic for request/response validation
  • All existing dependencies maintained

Full Changelog: v2.4.2...v2.4.3