Real-Time Video Calling App with Django WebRTC | WhatsApp Clone Final Year Project
Back to ProjectBefore you begin, ensure you have the following installed:
Clone the project repository to your local machine:
git clone [repository-url]
Change to the project directory:
cd "calling and video calling app"
Create a virtual environment to isolate project dependencies:
python -m venv venv
For Windows:
venv\Scripts\activate
For macOS/Linux:
source venv/bin/activate
Install all required packages from requirements.txt:
pip install -r requirements.txt
This will install:
Create database migrations:
python manage.py makemigrations accounts calls
Apply migrations to create database tables:
python manage.py migrate
Run the development server:
python manage.py runserver
Access the application at:
http://127.0.0.1:8000/
Click on contact names in the header to open user details where you can rename contacts with custom labels.
The recipient will receive a modal popup with Accept/Reject options.
Enable browser notifications for incoming call alerts when the tab is not active.
The application uses SQLite database by default, which is suitable for development and testing.
For production, configure PostgreSQL database connection in settings.py.
The application uses WebRTC for peer-to-peer communication. Both users must be on networks that support WebRTC.
Important: No restrictive corporate firewalls blocking UDP traffic.
For optimal performance, use modern browsers with full WebRTC support:
Mobile testing should be done on:
| Issue | Solution |
|---|---|
| WebSocket connection fails | Check firewall settings and ensure ASGI server is running |
| Video/Audio not working | Check browser permissions for camera and microphone |
| Call notifications not showing | Enable browser notifications in browser settings |
| Cannot connect between users | Ensure both users are on WebRTC-compatible networks |
The application consists of the following main components:
If you encounter any issues during installation or setup, please check the following:
Our team is here to assist you with installation and setup.