Skip to content

utkrsh29/SyncWave

Repository files navigation

BTP Project: Syncwaves

Syncwaves is a real-time web audio player designed to turn multiple devices into synchronized speakers. This project was developed as part of my B.Tech Project to demonstrate advanced real-time WebSockets and audio synchronization.

Features

  • Millisecond-accurate synchronization: Uses a custom time synchronization protocol to achieve high accuracy across different devices.
  • Cross-platform: Works on any device with a modern browser.
  • Real-time collaboration: Multiple users can join a room and listen to the same audio stream simultaneously.

Tech Stack

  • Frontend: Next.js, React, TailwindCSS
  • Backend: Bun, Hono, WebSockets
  • State Management: Zustand
  • Monorepo: Turborepo

How to Run Locally

  1. Install dependencies:

    bun install
  2. Setup Environment Variables: Create an .env file in apps/client with the following:

    NEXT_PUBLIC_API_URL=http://localhost:8080
    NEXT_PUBLIC_WS_URL=ws://localhost:8080/ws
  3. Start the development server (runs both frontend and backend):

    bun run dev
  4. Open your browser and navigate to http://localhost:3000.

Directory Structure

Directory Purpose
apps/server Backend HTTP + WebSocket server
apps/client Next.js frontend
packages/shared Type-safe schemas and functions shared between client & server

Submitted as a B.Tech Project.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors