A platform for creating and joining study groups https://cmustudy.com
  • TypeScript 90.5%
  • CSS 8%
  • JavaScript 1%
  • PLpgSQL 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Misha Garg 52632731e1
All checks were successful
kennel/build skipped: no services or static sites defined
Deploy to Railway Production / Deploy to Production (push) Successful in 2m1s
docs: fix readme spacing
2026-09-20 16:18:36 -04:00
.github/workflows remove required npm install in workflows 2026-09-19 00:27:47 -04:00
prisma switch faculty status web scraper to LDAP directory check 2026-09-13 14:55:01 -04:00
public Phase 1: cleanup code and remove InstaPlateMobile 2026-07-06 22:06:41 -04:00
src switch faculty status web scraper to LDAP directory check 2026-09-13 14:55:01 -04:00
.eslintrc.cjs First commit create-t3-app 2024-07-03 20:37:42 -04:00
.gitignore update readme with local postgres instructions 2026-09-20 13:30:35 -04:00
.nvmrc Phase 3: move style to CSS files 2026-07-06 22:06:41 -04:00
next.config.js Complete PostgreSQL migration and blocking support 2026-08-04 18:20:40 -04:00
package-lock.json switch faculty status web scraper to LDAP directory check 2026-09-13 14:55:01 -04:00
package.json switch faculty status web scraper to LDAP directory check 2026-09-13 14:55:01 -04:00
postcss.config.cjs First commit create-t3-app 2024-07-03 20:37:42 -04:00
prettier.config.js First commit create-t3-app 2024-07-03 20:37:42 -04:00
README.md docs: fix readme spacing 2026-09-20 16:18:36 -04:00
tailwind.config.ts Phase 3: move style to CSS files 2026-07-06 22:06:41 -04:00
tsconfig.json First commit create-t3-app 2024-07-03 20:37:42 -04:00

CMU Study

Find and manage CMU study groups.

Development

  • npm run dev starts the local Next.js app.

  • npm run build creates a production build.

  • npx tsc --noEmit runs TypeScript validation.

  • GET /api/v1/health verifies the Hono API boundary.

  • GET /api/v1/groups returns groups ordered by start time; pass courseCode to filter by course.

  • PostgreSQL is configured through DATABASE_URL; use npm run db:generate to 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:17
    

    Then add this value to both .env and .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, run npx prisma migrate dev, then start the app with npm run dev. Use docker stop studystarter-postgres and docker start studystarter-postgres to stop or restart the local database.

Project Structure

  • src/app contains Next.js routes and route layouts.
  • src/features/groups contains study-group components, hooks, services, filters, and constants.
  • src/features/profile contains profile components, hooks, services, and profile-specific types.
  • src/components contains shared layout, provider, and UI components.
  • src/helpers contains external integration helpers such as calendar/date utilities.
  • src/server/api contains the Hono API application and route composition.
  • src/styles contains global and component-level CSS.