- TypeScript 90.5%
- CSS 8%
- JavaScript 1%
- PLpgSQL 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| prisma | ||
| public | ||
| src | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| .nvmrc | ||
| next.config.js | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.cjs | ||
| prettier.config.js | ||
| README.md | ||
| tailwind.config.ts | ||
| tsconfig.json | ||
CMU Study
Find and manage CMU study groups.
Development
-
npm run devstarts the local Next.js app. -
npm run buildcreates a production build. -
npx tsc --noEmitruns TypeScript validation. -
GET /api/v1/healthverifies the Hono API boundary. -
GET /api/v1/groupsreturns groups ordered by start time; passcourseCodeto filter by course. -
PostgreSQL is configured through
DATABASE_URL; usenpm run db:generateto create a migration after changing the Prisma schema. -
To connect to the Railway Postgres-dev database, create a local SSH key, upload to Railway, install the railway CLI, and run
railway connect Postgres-dev --tunnel-only. Copy the given URL into the .env and .env.local DATABASE_URL before starting the app. You will need to be a member of the Railway project (if you have not been added yet, proceed with creating a local Postgress database). -
To create a local Postgres database with Docker, run:
docker run --name studystarter-postgres \ -e POSTGRES_USER=studystarter \ -e POSTGRES_PASSWORD=studystarter \ -e POSTGRES_DB=studystarter \ -p 5433:5432 \ -d postgres:17Then add this value to both
.envand.env.local:DATABASE_URL="postgresql://studystarter:studystarter@localhost:5433/studystarter?schema=public"Prisma CLI reads
.env, while the Next.js app reads.env.local. After setting the URL, runnpx prisma migrate dev, then start the app withnpm run dev. Usedocker stop studystarter-postgresanddocker start studystarter-postgresto stop or restart the local database.
Project Structure
src/appcontains Next.js routes and route layouts.src/features/groupscontains study-group components, hooks, services, filters, and constants.src/features/profilecontains profile components, hooks, services, and profile-specific types.src/componentscontains shared layout, provider, and UI components.src/helperscontains external integration helpers such as calendar/date utilities.src/server/apicontains the Hono API application and route composition.src/stylescontains global and component-level CSS.