A real-time video chat application built with Django and React, featuring secure WebRTC communication.
- ๐ฅ Real-time video and audio communication
- ๐ฌ Text chat functionality
- ๐ Secure peer-to-peer connections using WebRTC
- ๐ฏ Room-based communication system
- ๐ฎ Media controls (mute/unmute, video on/off)
- ๐ฑ Responsive design
- ๐ป Cross-platform support (Windows, Linux, macOS)
- Django
- Django Channels
- Redis (for WebSocket support)
- ASGI server (Daphne)
- React
- Material-UI
- WebRTC API
- WebSocket API
- Python 3.10 or higher
- Node.js 16 or higher
- Redis server
- Git
- Download and install Windows Subsystem for Linux (WSL)
- Install Redis in WSL:
wsl
sudo apt-get update
sudo apt-get install redis-server
sudo apt-get update
sudo apt-get install redis-server
brew install redis
- Clone the repository:
git clone https://github.com/yourusername/baat-cheet.git
cd baat-cheet
- Set up the backend:
# Create and activate virtual environment
python -m venv venv
venv\Scripts\activate
# Install Python dependencies
pip install -r requirements.txt
# Run migrations
python manage.py migrate
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate
# Install Python dependencies
pip install -r requirements.txt
# Run migrations
python manage.py migrate
- Set up the frontend:
cd frontend
npm install
- Start Redis server (in WSL):
wsl
sudo service redis-server start
- Start the application:
# From the project root
start.bat
- Start Redis server:
sudo systemctl start redis-server # Linux
brew services start redis # macOS
- Start the application:
# From the project root
./start.sh
The application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
baat_cheet/
โโโ frontend/ # React frontend
โ โโโ public/ # Public assets
โ โโโ src/
โ โโโ features/ # Feature-based modules
โ โ โโโ chat/ # Chat feature
โ โ โโโ home/ # Home/landing page
โ โ โโโ media/ # Media components
โ โ โโโ room/ # Room feature
โ โโโ shared/ # Shared resources
โ โโโ hooks/ # Custom hooks
โ โโโ utils/ # Utilities
โโโ chat/ # Django app
โ โโโ consumers.py # WebSocket consumers
โ โโโ routing.py # WebSocket routing
โ โโโ views.py # HTTP views
โโโ manage.py # Django management script
โโโ start.sh # Startup script for Linux/macOS
โโโ start.bat # Startup script for Windows
cd frontend
npm start
venv\Scripts\activate
python manage.py runserver
source venv/bin/activate
python manage.py runserver
-
Redis Connection Issues:
- Ensure WSL is properly installed
- Check Redis service in WSL:
sudo service redis-server status
- Try restarting Redis:
sudo service redis-server restart
-
Python venv Issues:
- Run PowerShell as Administrator
- Execute:
Set-ExecutionPolicy RemoteSigned
- Try activating venv again
-
Redis Connection Issues:
- Check Redis status:
systemctl status redis
(Linux) orbrew services list
(macOS) - Check Redis logs:
journalctl -u redis
(Linux) - Verify Redis port:
netstat -an | grep 6379
- Check Redis status:
-
Permission Issues:
- Ensure proper file permissions:
chmod +x start.sh
- Check Redis permissions:
sudo chown redis:redis /var/lib/redis
- Ensure proper file permissions:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- WebRTC for providing the peer-to-peer communication technology
- Django Channels for WebSocket support
- Material-UI for the component library