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.

This guide walks you through setting up a full local development environment for YouEyeSea — from cloning the repository to running the app and building for production.

Prerequisites

  • Node.js 18 or later — check with node --version
  • npm — bundled with Node.js
  • PostgreSQL — a running instance with a database you can connect to

Clone and install

1

Clone the repository

git clone https://github.com/alexjohntomy/you-eye-sea
cd you-eye-sea
2

Install dependencies

npm install
The postinstall script runs prisma generate automatically, so the Prisma client is ready as soon as npm install completes.
3

Set environment variables

Create a .env file in the project root with your database connection string:
DATABASE_URL="postgresql://USER:PASSWORD@localhost:5432/youeyesea"
See Database setup for full details on configuring Postgres and running migrations.
4

Start the dev server

npm run dev
Open http://localhost:3000 to see the app. The server hot-reloads as you edit files.

Key environment variables

VariableRequiredDescription
DATABASE_URLYesPostgres connection string used by Prisma
Set these in .env at the project root. The app reads them at runtime via dotenv/config.

Available scripts

CommandDescription
npm run devStart the Next.js development server with hot reload
npm run buildBuild the app for production
npm startStart the production server (requires a prior build)
npm run lintRun ESLint across the project
npm run generate-cacheRegenerate the static search cache files from the database
npx prisma db seedSeed the database from CSVs in prisma/grade_distribution_data/

Build and run in production mode

npm run build && npm start
The production build outputs to .next/. Run this locally to verify the app behaves correctly before deploying.

Linting

npm run lint
ESLint is configured with eslint-config-next and eslint-config-prettier. Fix all lint errors before opening a pull request.

Tech stack overview

LayerTechnology
FrameworkNext.js 16 (App Router)
LanguageTypeScript
StylingTailwind CSS 4
UI componentsshadcn/ui, Radix UI primitives
ChartsRecharts
ORMPrisma 7
DatabasePostgreSQL
SearchMiniSearch (client-side fuzzy search)
CSV parsingPapaParse (seed script only)
AnimationMotion
FontsManrope via @fontsource/manrope

Development-only tooling

react-grab is included as a dev dependency and is loaded only in development mode. It provides a visual element inspector for layout debugging. It does not appear in production builds.

Loading data

If you’re starting fresh, you’ll need to seed your database before the app shows any courses. See the guides below:

Database setup

Apply Prisma migrations and configure connection pooling.

Data ingestion

Download UIC CSVs and run the seed script to populate grade data.

Build docs developers (and LLMs) love