Skip to content

GEET3001/Muzer

Repository files navigation

Muzi

Collaborative music streaming: host a session, share a link, friends add songs and vote. The most upvoted track plays next.

Features

  • Google sign-in via NextAuth
  • Host session with short join code
  • Add YouTube songs by URL (auto title/thumbnail)
  • Live queue updates via polling (SWR)
  • Upvote to reorder queue dynamically

Tech

  • Next.js (App Router)
  • Prisma (PostgreSQL)
  • NextAuth (Google)
  • SWR

Getting started

  1. Install dependencies
pnpm install
  1. Configure environment Create app/.env.local with:
  1. Prisma
npx prisma generate
npx prisma migrate dev --name init
  1. Run
pnpm dev

Open http://localhost:3000

Scripts

  • pnpm dev – start dev server
  • pnpm build – build
  • pnpm start – start production server (after build)
  • pnpm prisma:generate – Prisma client generate
  • pnpm prisma:migrate – Run pending migrations in dev

Deployment

Provide the same env vars in your hosting platform:

  • DATABASE_URL
  • GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
  • NEXTAUTH_URL (your production URL)
  • NEXTAUTH_SECRET

Run migrations on deploy (depends on platform), or pre-run locally and ship the DB.

Notes

  • Voting is implemented as upvote/remove-upvote to keep the model simple. If you need downvotes, add a Downvotes model and sort by (upvotes - downvotes).
  • Real-time updates use polling (SWR refreshInterval). You can switch to WebSockets/SSE later.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors