Wassup is a real-time web chat application built with Django for educational purposes. The project aims to provide a straightforward platform for small- and medium-sized groups to communicate without unnecessary add-ons. After logging in, users access a dashboard that lists rooms in three categories: rooms they own, rooms in which they are guests, and public rooms that can be joined at any time. Within any room, participants can exchange text or photo messages in real time, and the full conversation history remains available at all times. Room owners can edit settings, hand ownership to another member, or delete the room. Participants may edit settings if owner allows it, leave room or mark it as a favourite for quick access. These live interactions are delivered over WebSocket connections managed by Django Channels, so updates reach every client immediately without page reloads and with minimal network overhead.
- User authentication with registration and login
- Public and private chat rooms with role-based access
- Real-time text and image messaging
- Persistent message history for each room
- Option to mark rooms as favourites
- Secure data access (only authorised members can view messages and images)
- Backend: Django, Django Channels, Daphne, Redis (prod)
- Frontend: HTML, CSS, JavaScript
- Database: SQLite (dev), PostgreSQL (prod)
- Other: WhiteNoise, django-environ, django-select2
- Clone the repository
git clone https://github.com/SwieciloM/Wassup.git cd Wassup - Create and activate a virtual environment
python -m venv .venv .venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
- Create a .env file with at least:
echo SECRET_KEY=your_secret_key > .env
- Apply migrations to set up the database
python manage.py migrate
- Start the development server
python manage.py runserver
- Open the application in your browser at http://127.0.0.1:8000
- Register a new account or log in.
- Create or join a public chat room.
- Start messaging in real-time!
- Favorite or leave rooms at any time.
This project is licensed under the MIT License – see the LICENSE file for details.


