A real-time collaborative presentation platform built with React, Django, and WebRTC.
- User authentication with JWT
- Create and join presentation rooms
- Real-time collaborative slide editing
- Live chat in rooms
- WebRTC video/audio communication
- Presentation mode
- React 18 with TypeScript
- Vite for build tooling
- TailwindCSS for styling
- Zustand for state management
- WebRTC for peer-to-peer communication
- WebSockets for real-time updates
- Django with Django REST Framework
- Django Channels for WebSockets
- PostgreSQL database
- Redis for WebSocket message broker
- JWT authentication
- Node.js 18+
- Python 3.10+
- PostgreSQL
- Redis
-
Navigate to backend directory:
cd collabcast/backend -
Create virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up PostgreSQL database:
- Create database named 'collabcast'
- Update database credentials in
collabcast/settings.py
-
Run migrations:
python manage.py migrate
-
Start Redis server (in another terminal):
redis-server
-
Start Django server:
python manage.py runserver
-
Navigate to frontend directory:
cd collabcast/frontend -
Install dependencies:
npm install
-
Start development server:
npm run dev
- Open browser to
http://localhost:5173(frontend) - Register a new account or login
- Create a new room or join existing one
- Start collaborating on slides and communicating via chat/video
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/rooms/create- Create roomGET /api/rooms/{id}- Get room detailsGET /api/slides/{room_id}- Get slides for roomGET /api/messages/{room_id}- Get messages for room
ws://localhost:8000/ws/rooms/{room_id}/- Room WebSocket for real-time updates
- Frontend runs on
http://localhost:5173 - Backend API on
http://localhost:8000 - WebSocket on
ws://localhost:8000
- Fork the repository
- Create feature branch
- Make changes
- Test thoroughly
- Submit pull request