Self-hosting YouEyeSea lets you run the full dashboard against your own copy of the grade distribution data. This is useful if you want to contribute to development, experiment with the codebase, or adapt it for another institution’s data.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.
Prerequisites
Before you begin, make sure you have the following:- Node.js v19 or higher
- PostgreSQL — a running instance you can connect to
- UIC grade distribution CSV files — downloadable from the UIC Office of Institutional Research
Setup
Install dependencies
Install all Node.js dependencies. The
postinstall script runs prisma generate automatically to generate the Prisma client from the schema.Configure your database connection
Create a YouEyeSea uses Prisma with the
.env file in the root of the project and set the DATABASE_URL environment variable to your PostgreSQL connection string..env
@prisma/extension-accelerate extension, so DATABASE_URL must be a valid PostgreSQL connection string or a Prisma Accelerate URL. The schema file at prisma/schema.prisma defines all the models that Prisma will create in your database.For detailed guidance on setting up your PostgreSQL database and running Prisma migrations, see the database setup guide.
Push the schema to your database
Apply the Prisma schema to your database to create the required tables.This creates the
Department, Professor, Course, CourseInstance, Comment, and Review tables defined in prisma/schema.prisma.Place your CSV files
Copy your UIC grade distribution CSV files into the The seed script expects the standard column format from UIC’s OIR exports, including fields like
prisma/grade_distribution_data/ directory. Each file should represent one semester (e.g., spring_2022.csv). YouEyeSea’s seed script derives the semester name from the filename, so name your files accordingly.CRS_SUBJ_CD, CRS_NBR, Primary_Instructor, DEPT_CD, DEPT_NAME, and the individual grade columns (A, B, C, D, F, W, etc.).Seed the database
Run the seed script to parse your CSV files and populate the database with course instances, professors, departments, and grade data.The script skips rows with missing required fields and logs progress as it processes each row. Seeding time depends on how many CSV files you have and how large they are.
Generate the search cache
YouEyeSea uses static cache files to power its fuzzy search without hitting the database on every keystroke. After seeding, run the cache generation script to create Re-run this command any time you add new CSV data and reseed the database.
courseList.tsx, professorList.tsx, and subjectList.tsx in the project root.Start the development server
Start the Next.js development server.Open http://localhost:3000 in your browser to see your local YouEyeSea instance with your data.
Building for production
To build an optimized production bundle, run:DATABASE_URL environment variable in your hosting platform’s settings before deploying.
