Designed and implemented database schema for TinyHub, which is a course enrollment system. It provides simple functions, main functions for Tiny- Hub are the following:
- User management
- Department management
- Course management
- Student Course management
The DB schema supports all the functions listed above.
Used E/R modeling to design and present the database, and mapped the E/R
model to a relational database schema and implemented the mapped schema using
a RDBMS by a set of CREATE TABLE
statements.
- Users can be of three types: Students, Professors, or Staff.
- Users sign up their accounts with their email addresses.
- Users need to set their passwords.
- Account, password, and display names are strings.
- One account has an optional unique display name. Users are allowed to change their display name as long as it is unique.
- One email address can be used to register only one account.
- Each department has an identifier department number.
- Every professor is hired by one department.
- Every staff is hired by one department.
- Departments offer different programs, which a program can only belong to one department.
- Students are allowed to major in different departments.
- Students can pursue different programs, but they must major in the department which is offering that program. e.g. Given a program ”Data Science” which is offered by CSE department, then only students major in CSE are allowed to.
- Each department offers different courses.
- A course can be opened in different semesters.
- A semester is identified by a year and a season, e.g. 2020 Spring.
- A course does NOT have to be opened every semester.
- Every course has TAs, and one instructor. However, it is possible to change TAs or the instructor even during the semester.
- An instructor must be a professor.
- A TA must be a student.
- A course may contain prerequisite courses.
- A student may register in different semesters.
- A student can enroll different courses. But that student can enroll a course only if
- That student has registered in the semester and the course is offered in that semester. i.e. A student need to register 2020 Spring before enrolling any course in 2020 Spring.
- That student passes all the prerequisite courses.
- It is being offered by a department they are majoring in.
- The capacity of the course is not full.
- Students will have a grade (F/D/C/B/A) with the course, which will be given after the student finishes the course.
- Students can post feedback for the instructor of the course in which they enrolled.
- Each course has one or more exams. Students who take that course have letter grades on those exams.
- Each exam has a number of problems. Students have scores on those problems.