Skip to main content

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.

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.
YouEyeSea is licensed under AGPL-3.0. If you distribute a modified version — including running a public instance — you must release your source changes under the same license. Review LICENSE.txt in the repository before deploying publicly.

Prerequisites

Before you begin, make sure you have the following:

Setup

1

Clone the repository

Clone the YouEyeSea repository from GitHub and enter the project directory.
git clone https://github.com/alexjohntomy/you-eye-sea
cd you-eye-sea
2

Install dependencies

Install all Node.js dependencies. The postinstall script runs prisma generate automatically to generate the Prisma client from the schema.
npm install
3

Configure your database connection

Create a .env file in the root of the project and set the DATABASE_URL environment variable to your PostgreSQL connection string.
.env
DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DATABASE"
YouEyeSea uses Prisma with the @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.
4

Push the schema to your database

Apply the Prisma schema to your database to create the required tables.
npx prisma db push
This creates the Department, Professor, Course, CourseInstance, Comment, and Review tables defined in prisma/schema.prisma.
5

Place your CSV files

Copy your UIC grade distribution CSV files into the 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.
prisma/
└── grade_distribution_data/
    ├── spring_2022.csv
    ├── fall_2022.csv
    └── spring_2023.csv
The seed script expects the standard column format from UIC’s OIR exports, including fields like CRS_SUBJ_CD, CRS_NBR, Primary_Instructor, DEPT_CD, DEPT_NAME, and the individual grade columns (A, B, C, D, F, W, etc.).
6

Seed the database

Run the seed script to parse your CSV files and populate the database with course instances, professors, departments, and grade data.
npx prisma db seed
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.
7

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 courseList.tsx, professorList.tsx, and subjectList.tsx in the project root.
npm run generate-cache
Re-run this command any time you add new CSV data and reseed the database.
8

Start the development server

Start the Next.js development server.
npm run dev
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:
npm run build
npm run start
YouEyeSea is deployed to Vercel in production, but any platform that supports Next.js will work. Set the DATABASE_URL environment variable in your hosting platform’s settings before deploying.
If you’re deploying to Vercel, add DATABASE_URL in Project Settings → Environment Variables. Vercel’s build step runs postinstall, which calls prisma generate automatically.

Build docs developers (and LLMs) love