{"id":24468748,"url":"https://github.com/brianobot/chat","last_synced_at":"2025-10-24T00:49:43.508Z","repository":{"id":140446120,"uuid":"598254242","full_name":"brianobot/Chat","owner":"brianobot","description":"Real Time peer-to-peer chatting API","archived":false,"fork":false,"pushed_at":"2023-12-23T14:02:42.000Z","size":79,"stargazers_count":9,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T01:47:25.810Z","etag":null,"topics":["api-rest","django-channels","django-rest-api","django-rest-framework","realtime-chat"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brianobot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-02-06T18:17:02.000Z","updated_at":"2024-05-28T22:22:12.000Z","dependencies_parsed_at":"2023-12-23T15:59:33.446Z","dependency_job_id":"2a362991-561f-475e-8f84-3f9f79e10ac5","html_url":"https://github.com/brianobot/Chat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianobot%2FChat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianobot%2FChat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianobot%2FChat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianobot%2FChat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianobot","download_url":"https://codeload.github.com/brianobot/Chat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248696232,"owners_count":21147093,"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":["api-rest","django-channels","django-rest-api","django-rest-framework","realtime-chat"],"created_at":"2025-01-21T07:13:05.622Z","updated_at":"2025-10-24T00:49:38.463Z","avatar_url":"https://github.com/brianobot.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django Real-Time Chat API\n\n## Description\nA high-performance, secure, and scalable real-time chat API built with Django. This API allows developers to easily build chat applications that can handle large amounts of messages and users.\n\n## Key Features (Completed)\n- ✔ Real-time chat communication using WebSockets\n- ✔ User authentication and authorization using token-based authentication\n- ✔ Scalable architecture to handle large numbers of users and messages\n- ✔ Efficient database design to store and retrieve messages in real-time\n- ✔ Robust security features to protect against malicious attacks\n\n\n## Getting Started\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes.\n\n### Prerequisites\n- Python 3.x\n- Pip (Usually comes with official python installation)\n\n### Installing\n1. Clone the repository:  \n```git\nhttps://github.com/brianobot/Chat.git\n```\n  \n2. Setup Virtual Environment:  \n```python\npip install pipenv\npipenv shell\n```\n\n3. Install the required packages:  \n```python\npipenv install -r requirements.txt\n```\n\n4. Run the development server:  \n```python\npython manage.py runserver\n```\n\n\n## API Endpoints:\nThe API has the following endpoints for authentication, messages, and chat rooms:\n   - `/api/v1/api-token-auth/`:  Endpoint for obtaining tokens\n   - `/api/v1/signup/` : Endpoint for Creating a user instance in the system\n   - `/api/v1/login/`  : Endpoint for Authenicating a user, returns auth token\n   - `/api/v1/users/`  : List all the user currently registered on the system\n   - `/api/v1/chats/`  : Lists All Chatroom that involves the current auth user\n   - `/api/v1/chat/\u003cstr:room_id\u003e/` : Returns a list of chats connected to the specified ChatRoom\n     - Websocket connection is expected from the frontend at this endpoint for real time peer to peer messaging\n   - `api/v1/messages/\u003cint:message_id\u003e/update/` : EndPoint for updating the read receipt of a message (specified by the message_id)\n\n\n## Object Concepts:\nAll chat-message instances are part of a chat-room instance which contains at least two users.\n\nA user can see all chat-room that he is involved in by going the chat endpoint.   \n    View URL - `api/v1/chat/`  \nA user can go into and interact with a chat-room by going to the chat-room endpoint\n    View URL - `api/v1/chat/\u003cchat-room-id\u003e/`\n\nOnce in the chat-room view, a websocket is created for real-time connection with the server and hence the other connected user.    \n  Websocket url - `ws/chat/\u003cchat-room-id\u003e/`\n\n\n## Maintainer:\n- Brian Obot \u003cbrianobot9@gmail.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianobot%2Fchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianobot%2Fchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianobot%2Fchat/lists"}