YouEyeSea stores UIC grade distribution data in a PostgreSQL database managed by Prisma. The schema defines six models that capture departments, courses, professors, per-semester grade records, and user-generated content. Understanding these models helps you navigate the codebase, write queries, and seed your own database.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/alexjohntomy/you-eye-sea/llms.txt
Use this file to discover all available pages before exploring further.
Overview of relationships
Coursebelongs to oneDepartment(viadepartmentID).CourseInstancelinks oneCourseto oneProfessorand stores the actual grade counts for a given semester. This is the central model for all grade data.Commentcan be attached to either aCourseor aCourseInstance.Reviewcan be attached to either aCourseor aProfessor.
prisma/schema.prisma
Department
Represents an academic department at UIC. Each department has a numeric code used by UIC’s official data.
Primary key. UIC’s numeric department code (e.g.,
2650 for Computer Science).Full human-readable department name (e.g.,
"Computer Science").All courses that belong to this department. Populated via the
Course.departmentID foreign key.Professor
Represents a UIC instructor. Each professor record is unique by name and aggregates all course sections they have taught.
Auto-incremented primary key.
Instructor’s full name. Must be unique across all records.
All
CourseInstance records linked to this professor — one per course section per semester.User-submitted reviews targeting this professor.
Course
Represents a course offering at UIC, identified by its subject code and course number (e.g., CS 342). The composite primary key is [subject, number].
Department subject abbreviation (e.g.,
"CS", "MATH", "ENGL"). Part of the composite primary key.Course number (e.g.,
342). Part of the composite primary key.Full course title (e.g.,
"Software Design").The department this course belongs to. Resolved via
departmentID.Foreign key referencing
Department.code.All historical grade records for this course across all professors and semesters.
User-submitted comments attached to this course.
User-submitted reviews attached to this course.
The composite
@@id(name: "courseName", fields: [subject, number]) constraint means you must always supply both subject and number when querying or relating to a Course.CourseInstance
The most important model in the schema. Each row represents grade data for one course section taught by one professor in one semester — for example, CS 342 taught by a specific instructor in Fall 2025. Grade counts are stored as raw integers for every UIC grade code.
Auto-incremented primary key.
Subject abbreviation of the related course (e.g.,
"CS"). Foreign key component referencing Course.subject.Course number of the related course (e.g.,
342). Foreign key component referencing Course.number.Foreign key referencing
Professor.id.Number of students who received an A.
Number of students who received a B.
Number of students who received a C.
Number of students who received a D.
Number of students who received an F.
Advanced standing / transfer credit count.
Credit (pass/fail passing) count.
Deferred grade count.
Incomplete grade count.
No grade reported count.
Not reported count.
Other grade count.
In progress count.
Satisfactory count.
Unsatisfactory count.
Withdrawal count.
Total enrolled students in this section, as reported in UIC’s source data.
Semester label (e.g.,
"Fall 2025" or "Spring 2024").User-submitted comments attached to this specific course instance.
Two composite indexes are defined on
CourseInstance: @@index([courseID, courseNumber]) for course lookups and @@index([professorID]) for professor lookups. These are essential for query performance when aggregating grade data.Comment
A user-submitted text comment. A comment targets either a specific CourseInstance (a particular semester/professor pairing) or a Course in general — both foreign key sets are nullable.
Auto-incremented primary key.
The comment text.
Timestamp the comment was created. Defaults to the current time.
Optional display name for the comment author.
Optional foreign key referencing
CourseInstance.courseInstanceID. Set when the comment is tied to a specific semester section.Optional subject abbreviation. Part of the composite foreign key referencing
Course when the comment is tied to a course in general.Optional course number. Part of the composite foreign key referencing
Course when the comment is tied to a course in general.Review
A user-submitted review with an optional star rating. A review targets either a Course or a Professor — both foreign key sets are nullable.
Auto-incremented primary key.
The review text.
Optional star rating (typically 1–5).
Timestamp the review was created. Defaults to the current time.
Optional display name for the review author.
Optional foreign key referencing
Professor.id. Set when the review targets a professor.Optional subject abbreviation. Part of the composite foreign key referencing
Course when the review targets a course.Optional course number. Part of the composite foreign key referencing
Course when the review targets a course.