ChatConnect is a real-time, modern web chat application built using Django Channels (WebSockets) on the backend and React (Vite) on the frontend. The project features a premium glassmorphic dark user interface, instant messaging, user search, friend systems, and profile customisation.
Once logged in, the user is greeted by the ChatConnect dashboard showing their profile information, active friend list, and actions to chat or manage friendships.
Users can search for other registered users in real-time by entering their username.
Conversations occur instantly over WebSockets. Here is a look at the active chat room from both users' perspectives:
| User 1 Perspective | User 2 Perspective |
|---|---|
![]() |
![]() |
Users can easily update their username and email address from the Edit Profile screen.
- Django (Python Framework)
- Django Channels & Daphne (WebSocket & ASGI server implementation)
- SQLite (Default local development database)
- React (Vite-powered single page application)
- React Router DOM (Client-side routing)
- Lucide React (Modern iconography)
- Vanilla CSS (High-fidelity custom dark-mode styling)
Follow these steps to run both the backend and frontend development servers.
-
Navigate to the project root directory:
cd chatapp-main -
Create and activate a virtual environment:
python -m venv venv # On Windows (PowerShell/CMD): venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
-
Install the required dependencies:
pip install -r requirements.txt
-
Apply database migrations (uses SQLite by default):
python manage.py migrate
-
(Optional) Create a superuser for accessing the Django Admin console (
http://localhost:8000/admin):python manage.py createsuperuser
-
Start the ASGI backend server:
python manage.py runserver
Daphne will start the development server at
http://127.0.0.1:8000/.
-
Open a new terminal window/tab and navigate to the
frontenddirectory:cd chatapp-main/frontend -
Install npm packages:
npm install
-
Start the Vite dev server:
npm run dev
The web application will launch at
http://localhost:5173/.
- The frontend uses relative paths for API endpoints (e.g.
/api/,/ws/). - Vite is configured with a development proxy in
vite.config.jswhich automatically routes:/apihttp://127.0.0.1:8000(HTTP endpoints)/wsws://127.0.0.1:8000(WebSocket channels)




