Documentation

Installation Guide

Real-Time Video Calling App with Django WebRTC | WhatsApp Clone Final Year Project

Step-by-step Setup Verified Instructions Chat Support
Back to Project
Complete Guide

Django WebRTC Video Calling Application - Installation Guide

Prerequisites

Before you begin, ensure you have the following installed:

  • Python 3.8 or higher
  • Git
  • Modern web browser (Chrome, Firefox, or Edge)

Step 1: Clone the Repository

Clone the project repository to your local machine:

git clone [repository-url]

Step 2: Navigate to Project Directory

Change to the project directory:

cd "calling and video calling app"

Step 3: Create Virtual Environment

Create a virtual environment to isolate project dependencies:

python -m venv venv

Step 4: Activate Virtual Environment

For Windows:

venv\Scripts\activate

For macOS/Linux:

source venv/bin/activate

Step 5: Install Dependencies

Install all required packages from requirements.txt:

pip install -r requirements.txt

This will install:

  • Django
  • Django Channels
  • Daphne ASGI server
  • Other necessary packages

Step 6: Database Setup

Create database migrations:

python manage.py makemigrations accounts calls

Apply migrations to create database tables:

python manage.py migrate

Step 7: Start Development Server

Run the development server:

python manage.py runserver

Access the application at:

http://127.0.0.1:8000/

Testing Video Calling Functionality

Setup Test Users

  1. Open the application in two separate browsers or use an incognito window
  2. Register two different user accounts with unique phone numbers:
    • User A: Phone number 111
    • User B: Phone number 222

Starting a Chat

  1. User A should click the chat icon or search bar
  2. Enter User B's phone number (222)
  3. Click "Start Chat"
  4. Send a message like "Hello" to establish the WebSocket connection
  5. User B will see User A appear in their contact list automatically

Managing Contacts

Click on contact names in the header to open user details where you can rename contacts with custom labels.

Making Calls

  • Video Call: Click the video camera icon
  • Audio Call: Click the phone icon

The recipient will receive a modal popup with Accept/Reject options.

Browser Notifications

Enable browser notifications for incoming call alerts when the tab is not active.

Database Configuration

Development (Default)

The application uses SQLite database by default, which is suitable for development and testing.

Production Deployment

For production, configure PostgreSQL database connection in settings.py.

Network Requirements

Firewall Settings

  • Ensure your firewall allows WebSocket connections
  • Allow ASGI server communication

WebRTC Requirements

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.

Browser Compatibility

For optimal performance, use modern browsers with full WebRTC support:

  • Google Chrome
  • Mozilla Firefox
  • Microsoft Edge

Mobile Testing

Mobile testing should be done on:

  • Actual mobile devices
  • Mobile browser emulators with camera and microphone permissions enabled

Troubleshooting

Common Issues

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

Project Structure

The application consists of the following main components:

  • accounts: User authentication and management
  • calls: Video and audio calling functionality
  • contacts: Contact management system
  • messages: Real-time messaging via WebSocket

Next Steps

  1. Complete the installation steps above
  2. Register test user accounts
  3. Test messaging functionality
  4. Test video and audio calling features
  5. Explore contact management features

Support

If you encounter any issues during installation or setup, please check the following:

  • Verify all prerequisites are installed correctly
  • Ensure Python version is 3.8 or higher
  • Check that all dependencies installed successfully
  • Review database migration output for errors
  • Verify network and firewall configurations

Need Help?

Our team is here to assist you with installation and setup.

Chat with Us
Chat with us