{"id":15146998,"url":"https://github.com/dahernandezsilve/p1redesclientexmpp","last_synced_at":"2026-02-24T16:39:27.828Z","repository":{"id":255242941,"uuid":"836430240","full_name":"Dahernandezsilve/P1RedesClienteXMPP","owner":"Dahernandezsilve","description":"📱 This project implements an instant messaging client that supports the XMPP protocol. 💻","archived":false,"fork":false,"pushed_at":"2024-08-27T19:31:05.000Z","size":3032,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T22:35:20.737Z","etag":null,"topics":["css","fastapi","js","python","react","requests","socket","stanza","websocket","xml","xmpp"],"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/Dahernandezsilve.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-31T20:42:24.000Z","updated_at":"2024-08-28T17:57:26.000Z","dependencies_parsed_at":"2024-08-28T20:51:33.223Z","dependency_job_id":null,"html_url":"https://github.com/Dahernandezsilve/P1RedesClienteXMPP","commit_stats":null,"previous_names":["dahernandezsilve/p1redesclientexmpp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dahernandezsilve%2FP1RedesClienteXMPP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dahernandezsilve%2FP1RedesClienteXMPP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dahernandezsilve%2FP1RedesClienteXMPP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dahernandezsilve%2FP1RedesClienteXMPP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dahernandezsilve","download_url":"https://codeload.github.com/Dahernandezsilve/P1RedesClienteXMPP/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237901380,"owners_count":19384385,"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":["css","fastapi","js","python","react","requests","socket","stanza","websocket","xml","xmpp"],"created_at":"2024-09-26T12:21:22.014Z","updated_at":"2025-10-24T01:31:19.701Z","avatar_url":"https://github.com/Dahernandezsilve.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📱 XMPP Client Project\n![Client](ClientsCapture.png)\n\n## 🚀 Project Overview\nThis project implements an instant messaging client that supports the XMPP protocol. The main objectives are:\n- Implement a protocol based on the standards.\n- Understand the purpose of the XMPP protocol.\n- Comprehend how XMPP services work.\n- Apply knowledge in Web and Mobile programming, alongside good development practices.\n\n## 🛠 Features\nThe XMPP client supports the following functionalities:\n\n**Account Management**\n- Register a new account on the server.\n- Log in with an existing account.\n- Log out of an account.\n- Delete an account from the server.\n\n**Communication** \n- Display all users/contacts and their status.\n- Add a user to the contact list.\n- Show contact details of a user.\n- One-to-one communication with any user/contact.\n- Participate in group conversations.\n- Set presence messages.\n- Send/receive notifications.\n- Send/receive files.\n\n**XEPs**\nHere are some XEPs that are implemented either directly or indirectly in the client\n- XEP-0199: XMPP Ping\n- XEP-0045: Multi-User Chat\n- XEP-0077: In-Band Registration\n- XEP-0136: Message Archiving\n- XEP-0138: Stream Compression\n- XEP-0363: HTTP File Upload\n- XEP-0079: Advanced Message Processing\n- XEP-0030: Service Discovery\n\n## 📋 Requirements\n\nBefore you begin, ensure you have the following installed:\n\n- ![Node.js](https://img.shields.io/badge/Node.js-20.12.1%2B-green?logo=nodedotjs\u0026logoColor=white) Node.js (v20.12.1)\n- ![npm](https://img.shields.io/badge/npm-8.0.0%2B-red?logo=npm\u0026logoColor=white) npm (Node Package Manager)\n- ![Yarn](https://img.shields.io/badge/yarn-1.22.19%2B-blue?logo=yarn\u0026logoColor=white) Yarn (v1.22.19)\n- ![Python](https://img.shields.io/badge/Python-3.11.8-blue?logo=python\u0026logoColor=white) Python 3.11.8\n\n## ⚙️ Installation\nClone the repository to your local machine:\n\n```bash\ngit clone https://github.com/Dahernandezsilve/P1RedesClienteXMPP.git\ncd P1RedesClientXMPP\n```\n\n### Install backend dependencies:\nNavigate to the backend directory and create a virtual environment:\n\n```bash\npython -m venv venv\nsource venv\\Scripts\\activate \npip install -r requirements.txt\n```\n\n### Install frontend dependencies:\nNavigate to the frontend directory and install npm dependencies:\n\n```bash\ncd Frontend/ClienteXMPP\nyarn install\n```\n\n## 🚀 Usage\nIt is important to have two terminals running simultaneously: one for the frontend and another for the backend. 🚨\n\n### Backend\nStart the XMPP client backend:\nNavigate to the backend directory and run:\n\n```bash\npython server.py\n```\n\n### Frontend\nRun the frontend:\nIn the frontend directory, start the development server:\n\n```bash\nyarn dev\n```\n\nAutomatically is going to open a website with the client, so you are ready to use it!.\n\n### Account Management\n- **Register a New Account:** Use the registration form to create a new XMPP account on the server.\n- **Log in:** Enter your credentials to log in to your account.\n- **Log out:** Simply click the logout button to disconnect.\n- **Delete Account:** Permanently delete your account from the server through the settings menu.\n\n### Communication\n- **View Contacts:** All your contacts will be listed along with their status.\n- **Add Contacts:** Use the search bar to add new users to your contact list.\n- **View Contact Details:** Click on any contact to view more details.\n- **1-to-1 Chat:** Start a conversation by selecting a contact.\n- **Group Chat:** Join or create a group chat.\n- **Set Presence:** Update your status with a custom message.\n- **Notifications:** Receive real-time updates and alerts on contact's requests or new messages.\n- **File Transfer:** Send and receive files directly through the chat interface.\n\n## 💡 Features and Limitations\n\n### 👁️ Features\n- Cross-platform compatibility.\n- Real-time messaging and notifications.\n- Secure file transfer using XMPP protocol.\n\n### 🚨 Limitations\n- May require further testing on different XMPP servers because is configured specifically to alumchat.lol.\n- The UI is optimized for modern browsers; older browsers may experience issues.It was tested on OperaGX.\n\n## 👨‍💻 Development\n\n### Structure\n- **Frontend:** Developed using React, styled with CSS, and communicates with the backend via WebSocket.\n- **Backend:** Built with Python, handling XMPP stanzas and providing APIs for the frontend with FastAPI.\n\n### Tools and Libraries\n- **React:** For building the user interface.\n- **WebSocket:** For real-time communication between the frontend and backend.\n- **SleekXMPP:** Python library for handling XMPP protocol in the backend.\n\n## 🎯 Goals Achieved\n- Implemented core XMPP functionalities with a modern web interface.\n- Ensured real-time communication and presence updates.\n- Achieved cross-platform compatibility and easy deployment.\n\n## 📚 Learning Outcomes\n- Gained a deep understanding of the XMPP protocol and its applications.\n- Developed skills in real-time web application development using modern technologies.\n- Enhanced knowledge in handling concurrent programming challenges.\n\n## 🔧 Troubleshooting\n- Ensure that the XMPP server is up and running.\n- Check your firewall settings if you're unable to connect to the XMPP server.\n- Verify that your Node.js and Python versions meet the project requirements.\n\n## 💻 Author\n- Diego Alexander Hernández Silvestre | Carne 21270 🛻\n\nYou are welcome to clone and contribute this repository 😁🪐🪁","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdahernandezsilve%2Fp1redesclientexmpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdahernandezsilve%2Fp1redesclientexmpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdahernandezsilve%2Fp1redesclientexmpp/lists"}