A real-time web messenger built with Django, Django REST Framework, Django Channels, and vanilla JavaScript.
- User registration, login, logout, and password reset flow
- User profiles with bio and profile pictures
- One-to-one conversations
- REST API for conversations and messages
- Real-time messaging with WebSockets
- Responsive layout for desktop and mobile browsers
- Python and Django
- Django REST Framework
- Django Channels and Daphne
- SQLite for local development
- HTML, CSS, and vanilla JavaScript
python -m venv chat
.\chat\Scripts\Activate.ps1
pip install -r requirements.txt
Copy-Item .env.example .env
python manage.py migrate
python manage.py runserverOpen http://127.0.0.1:8000/ and register two accounts to test messaging.
For testing from another device on the same Wi-Fi network:
python manage.py runserver 0.0.0.0:8000Then open http://YOUR_LAPTOP_IP:8000/ on the other device. Add the laptop IP to DJANGO_ALLOWED_HOSTS in .env when needed.
accounts/: authentication, profiles, templates, and frontend assetschats/: conversations, messages, REST endpoints, and WebSocket consumerconfig/: Django and ASGI configurationrequirements.txt: Python dependencies
This project is intended for local learning and portfolio demonstration. Production deployment requires secure secrets, a production database, HTTPS, and a persistent channel layer.
- Push the repository to GitHub.
- In Render, choose New > Blueprint and select this repository.
- Render will use
render.yamland the includedDockerfile. - After deployment, open the generated
https://*.onrender.comURL and register a user.
The included configuration creates a Render Redis Key Value service and uses it for WebSocket channel communication. SQLite data is still suitable only for a portfolio demo; use PostgreSQL for persistent production data.