{"id":17880594,"url":"https://github.com/adilmohak/dj-chat","last_synced_at":"2025-07-13T08:41:45.081Z","repository":{"id":187470802,"uuid":"666977538","full_name":"adilmohak/dj-chat","owner":"adilmohak","description":"A Django and htmx project. A fully functional chat app contains group and private or one-on-one chat using websockets and channels.","archived":false,"fork":false,"pushed_at":"2023-08-16T06:10:22.000Z","size":3839,"stargazers_count":31,"open_issues_count":0,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T09:51:37.487Z","etag":null,"topics":["channels","chat","chat-app","django","django-project","group-chat","htmx","htmx-app","one-on-one-chat","private-chat","redis","redis-server","websocket","websockets"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adilmohak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":"Adilmohak","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-07-16T08:17:15.000Z","updated_at":"2025-03-09T16:01:34.000Z","dependencies_parsed_at":"2023-08-10T17:40:31.620Z","dependency_job_id":"3a3fcf22-3eb0-436a-85b7-0c6963bd2394","html_url":"https://github.com/adilmohak/dj-chat","commit_stats":null,"previous_names":["adilmohak/dj-chat"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adilmohak%2Fdj-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adilmohak%2Fdj-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adilmohak%2Fdj-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adilmohak%2Fdj-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adilmohak","download_url":"https://codeload.github.com/adilmohak/dj-chat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244931450,"owners_count":20534007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["channels","chat","chat-app","django","django-project","group-chat","htmx","htmx-app","one-on-one-chat","private-chat","redis","redis-server","websocket","websockets"],"created_at":"2024-10-28T12:26:16.501Z","updated_at":"2025-03-22T08:30:58.947Z","avatar_url":"https://github.com/adilmohak.png","language":"Python","funding_links":["https://patreon.com/Adilmohak"],"categories":[],"sub_categories":[],"readme":"# dj-chat | A `django` and `htmx` chat application\n\nFully functional chat app built with `django` and `htmx` with the power of `websockets` and `channels`. The app also uses other production-level packages, such as:- channels, redis, django-allauth, django-crispy-forms, django-select2, etc.\n\n\u003e The main goal of this project is to show how django and htmx can be used to build a fully functional high quality application.\n\u003e Bootstrap5 is used to design the UI with custom styles.\n\n### Demo video: https://youtu.be/l1j8yyEc9Us\n\n![Screenshot 2023-08-10 155117](https://github.com/adilmohak/dj-chat/assets/60693922/db5c8628-36ef-446e-ae21-7d5f7a99adf5)\n\n# Current features:\n\n- **Private Messaging System:** Users can engage in private one-on-one chat conversations, known as threads.\n- **Group Chat and Discussion Rooms:** The application supports group chat functionality, allowing users to participate in discussion rooms centered around specific topics.\n- **User Authentication and Management:** Users can log in, log out, sign up, and manage(reset/change) their passwords.\n- **Chat History Management:** Users can clear the chat history within a room, providing them with control over their chat environment.\n- **Chat Deletion:** Users have the ability to delete entire chat conversations, offering a way to remove outdated or irrelevant discussions.\n- **Sorting Options:** The discussions can be sorted based on trending topics, newest additions, or oldest discussions, enabling users to find relevant conversations efficiently.\n- **Pagination and Infinite Scrolling:** The application utilizes pagination with infinite scrolling, allowing users to navigate through discussions seamlessly without page reloads. Messages inside private rooms are fetched automatically on the user scrolls up.\n- **Recent Room Display:** Users can easily view their recent chat rooms, making it convenient to access frequently visited discussions.\n- **Multicast Messaging:** Users can send messages to multiple recipients simultaneously.\n- **Dynamic Room Creation and Update:** Users can create and update discussion rooms in real-time without the need to navigate away from the current page.\n- **Real-time Discussion Search:** The application performs live discussion searches as users type, eliminating the need for page reloads and providing instant results.\n- **Invitation Functionality:** Users can invite others to join a discussion room without interrupting their ongoing participation in the conversation.\n- **Message Notifications:** Users have the option to mute or unmute message notifications, controlling their visibility and managing distractions.\n\n# Prerequisites:\n\n\u003e The following programs are required to run the project\n\n- [Any Python-3 version](https://www.python.org/downloads/)\n- [Redis](https://redis.io/download/)\n- [PostgreSQL database](https://www.postgresql.org/download/)\n\n# Installation\n\n- First Clone the repo with `git clone https://github.com/adilmohak/dj-chat.git`\n\n- Create and activate a python virtual environment\n\n- `pip install -r requirements.txt`\n\n- Create a `.env` file inside the root directory (Same directory where `manage.py` is located)\n\n- Inside your `.env` file put the following variables\n\n```\nDB_NAME=[NAME_OF_YOUR_DB]\nDB_USER=[DB_USERNAME]\nDB_PASSWORD=[DB_PASSWORD]\nDB_HOST=localhost\nDB_PORT=[DB_PORT]\n```\n\n- `python manage.py makemigrations`\n\n- `python manage.py migrate`\n\n- `redis-server`\n\n\u003e The above command will start the redis server\n\n- `python manage.py runserver`\n\n- Last but not least, go to this address http://127.0.0.1:8000\n\n# Connect with me\n\n\u003cdiv\u003e\n\u003ca href=\"https://www.linkedin.com/in/adilmohak\" target=\"_blank\"\u003e\n\u003cimg src=https://img.shields.io/badge/linkedin-%231E77B5.svg?\u0026style=for-the-badge\u0026logo=linkedin\u0026logoColor=white alt=linkedin style=\"margin-bottom: 5px;\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/adilmohak\" target=\"_blank\"\u003e\n\u003cimg src=https://img.shields.io/badge/github-%2324292e.svg?\u0026style=for-the-badge\u0026logo=github\u0026logoColor=white alt=github style=\"margin-bottom: 5px;\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://stackoverflow.com/users/12872688/adil-mohak\" target=\"_blank\"\u003e\n\u003cimg src=https://img.shields.io/badge/stackoverflow-%23F28032.svg?\u0026style=for-the-badge\u0026logo=stackoverflow\u0026logoColor=white alt=stackoverflow style=\"margin-bottom: 5px;\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.facebook.com/adilmohak1\" target=\"_blank\"\u003e\n\u003cimg src=https://img.shields.io/badge/facebook-%232E87FB.svg?\u0026style=for-the-badge\u0026logo=facebook\u0026logoColor=white alt=facebook style=\"margin-bottom: 5px;\" /\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n\n### Show your support by ⭐️ this project\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadilmohak%2Fdj-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadilmohak%2Fdj-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadilmohak%2Fdj-chat/lists"}