Skip to content
bitt-arPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

ChatsUp

ChatsUp project logo

A real-time messaging platform built with Django, Django Channels, WebSockets, and a responsive JavaScript interface.

Overview

ChatsUp is a full-stack chat application focused on fast, private communication. It supports one-to-one conversations, group chats, friend requests, user profiles, real-time notifications, online presence, and message delivery states.

The backend is powered by Django and Django Channels, while the frontend uses server-rendered templates with custom CSS and JavaScript for a smooth chat experience across desktop and mobile screens.

Screenshots

ChatsUp chat interface screenshot

ChatsUp conversations screenshot

ChatsUp profile and settings screenshot

Features

  • Real-time private messaging with WebSockets.
  • Group chat creation, membership, invitations, and owner controls.
  • Friend requests and friend management.
  • Online and offline presence indicators.
  • Message read and delivery status.
  • User registration, login, logout, profile editing, and password reset flows.
  • Email verification support.
  • Responsive layout for desktop and mobile usage.
  • SEO-ready robots.txt and sitemap.xml templates.
  • Environment-based settings for public deployment.

Tech Stack

  • Backend: Django, Django Channels, Daphne
  • Database: SQLite for local development, PostgreSQL-ready through DATABASE_URL
  • Realtime: WebSockets with Django Channels
  • Frontend: Django Templates, JavaScript, CSS
  • Media: Django media storage for user avatars and project assets

Project Structure

ChatsUp/
|-- accounts/          # Authentication, profiles, friend requests, email verification
|-- chat/              # Conversations, messages, groups, WebSocket consumers
|-- chatsup_project/   # Django settings, ASGI/WSGI, root URLs
|-- media/             # Public project media assets
|-- static/            # Shared static assets
|-- templates/         # Global templates such as robots.txt and sitemap.xml
|-- manage.py
|-- requirements.txt
`-- .env.example

Getting Started

1. Clone the repository

git clone https://github.com/your-username/ChatsUp.git
cd ChatsUp

2. Create and activate a virtual environment

python -m venv .venv

Windows PowerShell:

.\.venv\Scripts\Activate.ps1

macOS/Linux:

source .venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Configure environment variables

Copy the example environment file:

cp .env.example .env

Windows PowerShell:

Copy-Item .env.example .env

Then update .env with your local or production values.

5. Apply database migrations

python manage.py migrate

If the repository does not include generated migration files in your branch, create them first:

python manage.py makemigrations
python manage.py migrate

6. Create an admin user

python manage.py createsuperuser

7. Run the development server

python manage.py runserver

Open the app at:

http://127.0.0.1:8000/

Environment Variables

Variable Description Example
DJANGO_SECRET_KEY Secret key used by Django change-me-before-deploy
DJANGO_DEBUG Enables debug mode True locally, False in production
DJANGO_ALLOWED_HOSTS Comma-separated allowed hosts localhost,127.0.0.1,your-domain.com
DJANGO_CSRF_TRUSTED_ORIGINS Comma-separated trusted origins https://your-domain.com
SITE_URL Public site URL used for SEO metadata https://your-domain.com
DATABASE_URL Optional PostgreSQL connection URL postgres://user:pass@host:5432/db
EMAIL_BACKEND Django email backend django.core.mail.backends.console.EmailBackend
EMAIL_HOST_USER SMTP username [email protected]
EMAIL_HOST_PASSWORD SMTP password or app password your-password

Deployment Notes

  • Keep .env, local databases, virtual environments, compiled Python files, and uploaded user avatars out of Git.
  • Set DJANGO_DEBUG=False in production.
  • Use a strong DJANGO_SECRET_KEY in production.
  • Add your production domain to DJANGO_ALLOWED_HOSTS.
  • Add your HTTPS origin to DJANGO_CSRF_TRUSTED_ORIGINS.
  • Use PostgreSQL or another production-ready database through DATABASE_URL.
  • Serve static and media files with your deployment platform or a dedicated storage service.

Public Repository Hygiene

This repository is prepared for public GitHub usage. Local-only files such as db.sqlite3, .env, .venv, __pycache__, compiled Python files, collected static files, and user-uploaded avatars should not be committed.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages