Skip to main content

A flexible Chat Application for open source software society.

Project description

PyPi Version

GitHub stars



Python

Django

Vue.js

SASS

Django Chat App

A flexible Chat Application for open source software society.

Table of Contents

Screenshots

Client:

client chat view

Supporter panel:

supporter panel view

Features

  • Supporter panel

  • Play Tic-Toc-Toe game in client side

  • Report the client

  • Write your ready messages and use them in Supporter panel

  • Editable, Deletable messages and show or hide deleted message in supporter panel or client side

  • Emoji bar

  • Reply message

  • Rtl and Ltr template

  • Show client or supporter status (online | last seen recently)

  • Double check for send and seen message

  • Easily customize settings

Prerequisites

Your project must use ASGI engine. You can use from channels and daphne.

for convert WSGI to ASGI, you can follow these commands.

  1. Install channels and daphne packages:

pip install channels==4.0.0 daphne==4.0.0

  1. Then, In asgi.py file:
import os

from django.core.asgi import get_asgi_application

from channels.routing import ProtocolTypeRouter, URLRouter

from channels.auth import AuthMiddlewareStack

from channels.sessions import SessionMiddlewareStack

from chatapp.routing import ws_urlpatterns





os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'App_Config.settings')



application = ProtocolTypeRouter({

    'http': get_asgi_application(),

    'websocket': SessionMiddlewareStack(

        AuthMiddlewareStack(

            URLRouter(ws_urlpatterns)

        )

    )

})
  1. And in settings.py, add daphne and channels to your INSTALLED_APPS.
INSTALLED_APPS = [

    ...

    'daphne',

    'channels',

]
  1. Then, You must edit this line:
WSGI_APPLICATION = '<your_app_name>.wsgi.application'

to this line:

ASGI_APPLICATION = '<your_app_name>.asgi.application'
  1. And for last item, Add these codes for channel layer settings:
CHANNEL_LAYERS = {

    "default": {

        "BACKEND": "channels.layers.InMemoryChannelLayer"

    }

}
  1. For run the server, just enough run this command:

python3 manage.py runserver

Now, You have a Async Project. ASGI applications support synchronous and asynchronous tasks.

Quick start

  1. Install django-chatapp in your project:

pip install django-chatapp

  1. Add "chatapp" to your INSTALLED_APPS in settings.py
INSTALLED_APPS = [

    ...

    'chatapp',

]
  1. Include the chatapp URLconf in your project urls.py like this:
from chatapp.views import supporter_homepage



path('django-chatapp/chat/supporter/', supporter_homepage),

path('', include('chatapp.urls', namespace='chatapp')),
  1. Run python3 manage.py migrate to create the chatapp models.

  2. You must include chatapp section to your main template:


{% load chatapp %}



{% include_chatapp %}

  1. Now, Click the blue button in your screen and test your chat application.

Set Supporter

After installing the package, you need to define a Supporter.

go to Django administration and set a supporter in SupporterModel Table.

After that, go to your supporter panel at /django-chatapp/chat/supporter/

Use & Enjoy.

Customize Settings

  • Set direction of your template. Right to left, Left to right or Auto. If you set auto, you must have translation system in your project and your urls start with /en/ or /fa/ or /ar/ or /ru/.
CHATAPP_DIR = 'ltr'    # other value: rtl - ltr - auto
  • Set chat application language. If you don't use translation system, you can set this value. If you set auto, you must have translation system in your project and your urls start with /en/ or /fa/ or /ar/ or /ru/.
CHATAPP_LANGUAGE = 'en'    # other value: auto - en - fa - ar - ru
  • Set login url for supporter panel. If Supporter was not login, redirects to this url. as default, shows <h3>Login Required.</h3> to supporter.
CHATAPP_SUPPORTER_LOGIN_URL = '<your_url>'
  • Editable message via Client:
CHATAPP_EDIT_USER_MESSAGE = True
  • Deleteable message via Client:
CHATAPP_DELETE_USER_MESSAGE = True
  • Editable message via Supporter:
CHATAPP_EDIT_SUPPORTER_MESSAGE = True
  • Deleteable message via Supporter:
CHATAPP_DELETE_SUPPORTER_MESSAGE = True
  • Show or Hide 'This message has been deleted.':
CHATAPP_SHOW_DELETED_MESSAGE = True
  • Enable game for Client:
CHATAPP_GAME = True
  • Fields for client login is firstname, lastname and (phone? or email?)
CHATAPP_AUTHFIELDS = 'email'     # other value: phone OR email
  • Title and SubTitle of chat box header:
CHATAPP_TITLE = 'Welcome'

CHATAPP_SUBTITLE = 'Please wait a moment'
  • Maximoum report for a Client:
CHATAPP_MAX_REPORT_NUMBER = 2
  • The number of messages that are loaded at the first time:
CHATAPP_MESSAGES_COUNT = 30

Contributing

We welcome contributions to our project! To contribute, please follow these steps:

  1. Fork this repository to your own account

  2. Clone your forked repository to your local machine

  3. Create a new branch for your changes

  4. Make your changes and commit them with a descriptive commit message

  5. Push your changes to your forked repository

  6. Submit a pull request :D

Please ensure that your code is well-tested and follows our code style guidelines. We also welcome bug reports, feature requests, and feedback on the project.

Thank you for contributing to our project!

History

  • Version 2.0 (2025-Nov-1) - First stable release

License

MIT License

Copyright (c) 2025 django-chatapp

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_chatapp-2.1.tar.gz (278.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_chatapp-2.1-py3-none-any.whl (285.4 kB view details)

Uploaded Python 3

File details

Details for the file django_chatapp-2.1.tar.gz.

File metadata

  • Download URL: django_chatapp-2.1.tar.gz
  • Upload date:
  • Size: 278.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for django_chatapp-2.1.tar.gz
Algorithm Hash digest
SHA256 31373cecf3ede3484637bafb71a1167935e64103fff0309477a285014ecee6ba
MD5 d10808b5dc5734f15f3a82a03241348e
BLAKE2b-256 b41ef852dca5fb8ddad654e698b6916efbbece8b992e4faf1b6e2f895de441b1

See more details on using hashes here.

File details

Details for the file django_chatapp-2.1-py3-none-any.whl.

File metadata

  • Download URL: django_chatapp-2.1-py3-none-any.whl
  • Upload date:
  • Size: 285.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for django_chatapp-2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c265c74879e54089749e323fe385c5cce2b388bfcc125e7af38f801ba42f9611
MD5 73c3975fd7c052b1e32b0f8517531e24
BLAKE2b-256 a4c3feac8581d213b7f332153d17d6caf1a532a73fd256d28e26c6b0081260da

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page