{"id":20461282,"url":"https://github.com/infectedduck/a-real-time-messanger-using-flask","last_synced_at":"2026-03-05T23:33:28.967Z","repository":{"id":255531619,"uuid":"835596961","full_name":"InfectedDuck/A-Real-Time-Messanger-Using-Flask","owner":"InfectedDuck","description":" A Python-based real-time web messenger app built with Flask and Flask-SocketIO, offering secure user authentication, real-time chat via WebSockets, profile management, and encrypted communication over HTTPS.","archived":false,"fork":false,"pushed_at":"2025-11-14T14:08:02.000Z","size":9378,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-07T05:41:02.281Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InfectedDuck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-30T06:48:35.000Z","updated_at":"2025-11-14T14:34:17.000Z","dependencies_parsed_at":"2024-09-14T15:22:24.978Z","dependency_job_id":null,"html_url":"https://github.com/InfectedDuck/A-Real-Time-Messanger-Using-Flask","commit_stats":null,"previous_names":["infectedduck/a-real-time-messanger-using-flask"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/InfectedDuck/A-Real-Time-Messanger-Using-Flask","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfectedDuck%2FA-Real-Time-Messanger-Using-Flask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfectedDuck%2FA-Real-Time-Messanger-Using-Flask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfectedDuck%2FA-Real-Time-Messanger-Using-Flask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfectedDuck%2FA-Real-Time-Messanger-Using-Flask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InfectedDuck","download_url":"https://codeload.github.com/InfectedDuck/A-Real-Time-Messanger-Using-Flask/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InfectedDuck%2FA-Real-Time-Messanger-Using-Flask/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30155307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T22:39:40.138Z","status":"ssl_error","status_checked_at":"2026-03-05T22:39:24.771Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-11-15T12:24:38.598Z","updated_at":"2026-03-05T23:33:28.935Z","avatar_url":"https://github.com/InfectedDuck.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Real-Time Web Messenger Application\n\nThis **Real-Time Web Messenger Application** is a Python-based chat platform built with **Flask** and **Flask-SocketIO** for real-time communication. It allows users to join or create chat rooms, send messages, and update their profiles with secure authentication. The application uses **SQLite** for database management, and profile photos can be uploaded and displayed via secure file handling. \n\n## Features\n\n1. **User Authentication**: \n    - Login and registration system with password hashing (using `werkzeug.security`).\n    - Ensures that only authenticated users can access certain functionalities like chat rooms or profile updates.\n\n2. **Real-Time Communication**:\n    - Chat rooms are created dynamically, and users can join existing rooms or create new ones.\n    - Messages are broadcast in real-time using **WebSockets**, allowing users to instantly communicate.\n    - Each room stores its own messages and displays them upon user re-entry.\n\n3. **Profile Management**:\n    - Users can update their profiles, including their usernames, emails, and passwords.\n    - Profile photos can be uploaded securely with image validation for types (`png`, `jpg`, `jpeg`, `gif`).\n\n4. **Database Management**:\n    - User data is stored in a **SQLite** database.\n    - The application fetches and updates user data securely when necessary.\n\n5. **File Uploads**:\n    - Users can upload profile photos, and the application verifies that the file type is allowed and securely saves the file.\n\n## Secured HTTP Connection\n\nThe application uses a **secured HTTP connection** (HTTPS) for communication, enhancing the security of user interactions. \n\n- A **self-signed SSL certificate** is used to establish secure connections between the server and the client. The certificate (`cert.pem`) and private key (`key.pem`) are provided, ensuring that data transmitted between the client and server is encrypted.\n- The Flask-SocketIO server runs with the `ssl_context` parameter configured, enforcing the use of **HTTPS**. This prevents man-in-the-middle attacks and ensures that sensitive data such as passwords and messages are encrypted during transmission.\n\nThe application runs with these certificates to provide HTTPS communication:\n```\nsocketio.run(app, host='127.0.0.1', port=5000, ssl_context=(cert_path, key_path))\n```\n## Technology Stack\n\n- **Flask**: Backend web framework.\n- **Flask-SocketIO**: Enables real-time, bidirectional communication using WebSockets.\n- **SQLite**: Database management for storing user information.\n- **HTML/CSS**: For frontend templates.\n- **Werkzeug**: Password hashing and request handling.\n- **Socket.IO**: For handling real-time message delivery.\n- **SSL (Secure Sockets Layer)**: For securing communications.\n\n## Usage Instructions\n\n1. Clone the repository and install the required dependencies.\n2. Generate your SSL certificate and private key, or use the provided paths.\n3. Run the application locally, ensuring the upload folder exists:\n```\npython app.py\n```\n4. Access the application at https://127.0.0.1:5000.\n\n## Chat Application Status\n\nThe chat application is now **live** and secured via **HTTPS**!\n\n## Future Improvements\n\n- Implementing enhanced security features for password recovery.\n- Adding more room management features (e.g., private rooms, room moderation).\n- Implementing message history retrieval from the database.\n\n## License\n\nThis project is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). See the [LICENSE](LICENSE.txt) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfectedduck%2Fa-real-time-messanger-using-flask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfectedduck%2Fa-real-time-messanger-using-flask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfectedduck%2Fa-real-time-messanger-using-flask/lists"}