https://github.com/onebitjoy/audiohive
https://github.com/onebitjoy/audiohive
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/onebitjoy/audiohive
- Owner: onebitjoy
- License: apache-2.0
- Created: 2025-04-12T15:07:15.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-12T15:09:48.000Z (about 1 year ago)
- Last Synced: 2025-06-11T02:43:34.825Z (12 months ago)
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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 | ✅ |
---