DegreePrerequisiteTracker / Degree-Prerequisite-Tracker

2 stars 4 forks source link

Schema/API Design comments (Libby Brill) #63

Closed librill closed 6 days ago

librill commented 2 weeks ago
  1. based on ER Diagram: prerequisites should not in courses - violates 1NF and is also duplicative since there is a prerequisites table

  2. based on schema.sql: missing pre-requisite and co-requisite tables, should not be in courses (see 1)

  3. users missing from schema? (also are co-requisites ever accounted for? is there a prerequisites table?)

  4. it might make sense to have "completed" be within the courses table as opposed to it's own table - that way you could also have "in progress" be an option (allowing you to add a message that recommended courses require a passing grade in "in progress" prerequisite courses)

  5. consider creating a new table for cross-listed courses (similar to prerequisites/co-requisites in 1 and 2) - that way it won't violate 1NF if a course is cross-listed more than once

  6. consistency across names (singular vs. plural): GET /subjects/{prefix}/course vs. GET /program/{program_id}/requirements, etc.

  7. consider allowing a list of courses to be inputted into PUT /user/history/{course_id} - would prevent a lot of tedious repetition

  8. maybe allow for more than one plan per person - consider a current 4th year undergraduate student who want to plan out current degree requirements and also master program requirements (2 different "plans" with different years, possibly different departments, etc.)

  9. consider adding a way for users to indicate which term they are interested in at the moment (adding a quarter/term input) to better filter possible course options

  10. all major curriculum requirements include GEs, perhaps find a way to indicate if courses fulfill certain electives - would be helpful in removing or suggesting courses based on completed courses

  11. I know people can double-major or have a double concentration - maybe allow for adding more than one program/concentration for the same plan?

  12. what about transfer credits? users would liekly just input what course requirement(s) those classes fulfilled, but sometimes a transfer course might meet the C2 requirement (for example) but not match any specific course - perhaps allow for adding courses simply by elective requirement (would only work for GEs, and maybe major/support electives)

KaiiSnorlax commented 6 days ago
  1. https://github.com/DegreePrerequisiteTracker/Degree-Prerequisite-Tracker/blob/21a2489d9ca6daa7c8b45152809c8c26d5c84664/schema.sql#L90-L115
  2. Same as above, working on coreq
  3. Users are handled by auth, they are in auth schema
  4. This would cause issues as users to courses is a many to many relationship. I like the idea of adding in progress courses though.
  5. We will take this into consideration.
  6. https://github.com/DegreePrerequisiteTracker/Degree-Prerequisite-Tracker/issues/67
  7. https://github.com/DegreePrerequisiteTracker/Degree-Prerequisite-Tracker/issues/85
  8. This is already implemented, users can have multiple plans.
  9. Will take this into consideration in future when we have a UI.
  10. https://github.com/DegreePrerequisiteTracker/Degree-Prerequisite-Tracker/pull/74
  11. We want to do this, but for the scope of this project we narrowed it down to single majoring and just bachelor degrees.
  12. This is a good idea, but for the scope of this project we are not taking into consideration transfer credit.