An open API service indexing awesome lists of open source software.

https://github.com/onebitjoy/audiohive


https://github.com/onebitjoy/audiohive

Last synced: 5 months ago
JSON representation

Awesome Lists containing this project

README

          

# audiohive

# 🎥 Full Stack Audio & Video Call App – Roadmap

Build a modern audio and video calling application, with features similar to Zoom, Discord, or Clubhouse — using modern tools like WebRTC, tRPC, WebSockets, and Redis.

---

## 🔧 Phase 1: Project Setup & Core Infrastructure

### ✅ Goals:
- Project scaffolding
- Auth, DB, and basic UI setup

| Feature | Tech |
|--------|------|
| Project structure | Turborepo / Nx |
| Frontend | Next.js + Tailwind CSS + tRPC + React Query |
| Backend | Node.js + tRPC + Prisma + PostgreSQL |
| Auth | NextAuth.js (OAuth, email/password) |
| Dev Tools | ESLint, Prettier, Husky, Docker |

### 🧩 Tasks:
- [ ] Scaffold monorepo
- [ ] Setup DB models (`users`, `rooms`, `calls`, `messages`)
- [ ] User authentication
- [ ] Dashboard with room list

---

## 📞 Phase 2: Room & Call Management

### ✅ Goals:
- Room creation, joining, and permission control

| Feature | Tech |
|--------|------|
| Room management | tRPC + PostgreSQL |
| Role-based access | Prisma roles |
| Room metadata | tRPC queries |

### 🧩 Tasks:
- [ ] Create/join/leave room
- [ ] Assign host/speaker/guest roles
- [ ] Room info UI + backend sync

---

## 🎙️ Phase 3: WebRTC Setup for Streaming

### ✅ Goals:
- Real-time audio/video connection

| Feature | Tech |
|--------|------|
| Local media | getUserMedia() |
| Peer connection | WebRTC RTCPeerConnection |
| STUN/TURN | coturn |
| Signaling | tRPC or WebSocket |

### 🧩 Tasks:
- [ ] Capture local video/audio
- [ ] Set up peer-to-peer connection
- [ ] Signaling: ICE/SDP exchange
- [ ] Mute/unmute, toggle camera

---

## 🔄 Phase 4: Real-Time Signaling System

### ✅ Goals:
- Real-time signaling and presence management

| Feature | Tech |
|--------|------|
| Real-time events | WebSocket |
| Multi-instance sync | Redis Pub/Sub |
| Presence | Redis TTL keys |
| Speaking detection | Web Audio API |

### 🧩 Tasks:
- [ ] WebSocket server setup
- [ ] Handle signaling messages (`offer`, `answer`, `ice`)
- [ ] Track online users in rooms
- [ ] Display speaking status

---

## 👥 Phase 5: Group Calls & Dynamic Layouts

### ✅ Goals:
- Multi-user call experience

| Feature | Tech |
|--------|------|
| Group peer mesh | WebRTC |
| UI layout | CSS Grid/Flexbox |
| Stream toggles | React state mgmt |
| Speaker detection | Audio level analysis |

### 🧩 Tasks:
- [ ] Connect multiple peers (mesh or SFU)
- [ ] Create grid-based layout
- [ ] Dynamic UI based on active speakers

---

## 🛠️ Phase 6: Advanced Features

### ✅ Goals:
- Add rich modern features

| Feature | Tech |
|--------|------|
| In-call chat | WebSocket / tRPC |
| Screen sharing | getDisplayMedia() |
| Push notifications | Web Push / FCM |
| Call recording (optional) | MediaRecorder API / SFU |
| Call scheduling | Cron jobs / calendar UI |
| Analytics | Sentry / PostHog / custom logs |

### 🧩 Tasks:
- [ ] Implement screen sharing
- [ ] Add push notifications
- [ ] In-call text messaging
- [ ] Collect call logs & metrics

---

## 🚀 Phase 7: Deployment & Scaling

### ✅ Goals:
- Production-ready setup with CI/CD

| Feature | Tech |
|--------|------|
| Hosting | Vercel + Render / Fly.io |
| TURN servers | coturn |
| CI/CD | GitHub Actions |
| Monitoring | Sentry + Grafana |

### 🧩 Tasks:
- [ ] Set up CI/CD
- [ ] Deploy app and media server
- [ ] Configure error/log tracking

---

## 🎯 Final App Features (Checklist)

| Feature | Included |
|--------|----------|
| ✅ Audio & Video calling | ✅ |
| ✅ WebRTC with signaling | ✅ |
| ✅ Room creation & roles | ✅ |
| ✅ Multi-user grid | ✅ |
| ✅ Real-time chat | ✅ |
| ✅ Push notifications | ✅ |
| ✅ Screen sharing | ✅ |
| ✅ Presence & speaker detection | ✅ |
| ✅ OAuth login | ✅ |
| ✅ Call analytics | ✅ |
| ✅ Mobile-friendly UI | ✅ |

---