Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

expand db schema to include more details from BOSS #381

Open
davidlhw opened this issue Jan 9, 2025 · 0 comments
Open

expand db schema to include more details from BOSS #381

davidlhw opened this issue Jan 9, 2025 · 0 comments
Labels
db:schema enhancement New user-facing feature or request. This Label is used as a category on release notes.

Comments

@davidlhw
Copy link
Contributor

davidlhw commented Jan 9, 2025

after scraping data from BOSS via this link format:
https://boss.intranet.smu.edu.sg/ClassDetails.aspx?SelectedAcadTerm={TERM}&SelectedClassNumber={CLASS}

Proposed changes to current schemas

course schema:

  • add course_area: str, example:
    image
  • add enrolment_requirements: str, example:
    image

class schema:

  • every AY+term has a unique class by course code & section
  • rename label to section
  • class-acad_term is a 1-1 relationship
  • add acad_term: FK reference to acad_term
  • add grading_basis with possible values: 'pass/fail' | 'graded'
  • add class_time
  • add course_outline_url: example link - the course outline, though confusingly named, is unique to the class and not the course
  • add boss_id: example 1228

Proposed new schemas

acad_term schema:

  • id str, example: 'AY202425T2'
  • acad_year_start: 2024
  • acad_year_end: 2025
  • term: '3A'
  • boss_id: 2420

class_timing schema:

image

  • class-class_timing is a 1-N relationship
  • class: FK reference to class
  • start_date
  • end_date
  • day_of_week
  • start_time
  • end_time
  • venue
  • professor_id

class_exam_timing schema:

image

  • class-class_exam_timing is a 1-N relationship
  • class: FK reference to class
  • date
  • day_of_week
  • start_time
  • end_time
  • venue NULLABLE

class_availability schema:

image

  • bid_window-class_availability is a 1-1 relationship
  • bid_window: FK reference to bid_window
  • total
  • current_enrolled
  • reserved
  • available

bid_window schema:

  • bid_window-acad_term is a 1-1 relationship
  • acad_term: FK reference to acad_term
  • round
  • window

bid_result schema:

image

  • bid_result-bid_window is a 1-1 relationship
  • bid_result-class is a N-1 relationship
  • bid_window: FK reference to bid_window
  • class: FK reference to class
  • vacancy: unsure what this means in BOSS, but we'll retain for future reference
  • opening_vacancy: unsure what this means in BOSS, but we'll retain for future reference
  • before_process_vacancy: equal to available value in the same bid_window, ie number of seats available to be bidded for
  • d_i_c_e: how many successful DICE (aka Drop If Course Exceeds) for this class in this bid window
  • after_process_vacancy: number of seats left available for bidding after concluding this window
  • enrolled_students: current total number of enrolled students for this class
  • bid_median: the median bid for this class in this window
  • bid_min: the min bid for this class in this window
@davidlhw davidlhw added enhancement New user-facing feature or request. This Label is used as a category on release notes. db:schema labels Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
db:schema enhancement New user-facing feature or request. This Label is used as a category on release notes.
Projects
None yet
Development

No branches or pull requests

1 participant