{"id":22680191,"url":"https://github.com/filiprokita/chatterbox","last_synced_at":"2026-04-04T08:43:43.574Z","repository":{"id":266892672,"uuid":"884247439","full_name":"FilipRokita/chatterbox","owner":"FilipRokita","description":"Chatterbox is a simple web-based chat application designed for real-time messaging. It features user authentication, message handling, and a responsive user interface.","archived":false,"fork":false,"pushed_at":"2025-03-04T12:37:19.000Z","size":8893,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T13:37:44.869Z","etag":null,"topics":["bootstrap","chat","chat-application","css","docker","flask","html","javascript","js","messenger","python","real-time-messaging","sql","sqlalchemy","sqlite","user","user-authentication","web-development","websockets"],"latest_commit_sha":null,"homepage":"https://chatterbox-70u8.onrender.com/","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/FilipRokita.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2024-11-06T12:15:01.000Z","updated_at":"2025-03-04T12:37:22.000Z","dependencies_parsed_at":"2024-12-06T20:46:25.879Z","dependency_job_id":"0024c28d-6eae-4aac-82a2-8cb42069b65d","html_url":"https://github.com/FilipRokita/chatterbox","commit_stats":null,"previous_names":["filiprokita/chatterbox"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilipRokita%2Fchatterbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilipRokita%2Fchatterbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilipRokita%2Fchatterbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilipRokita%2Fchatterbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FilipRokita","download_url":"https://codeload.github.com/FilipRokita/chatterbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246193156,"owners_count":20738450,"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":["bootstrap","chat","chat-application","css","docker","flask","html","javascript","js","messenger","python","real-time-messaging","sql","sqlalchemy","sqlite","user","user-authentication","web-development","websockets"],"created_at":"2024-12-09T19:12:41.108Z","updated_at":"2025-12-30T20:30:16.997Z","avatar_url":"https://github.com/FilipRokita.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chatterbox\n\n\u003cdiv align=\"center\"\u003e\n   \u003cimg src=\"misc/banner/banner.png\" width=500\"\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n   \u003ca href=\"https://chatterbox-70u8.onrender.com/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/LIVE_DEMO-Click_Here-green?style=for-the-badge\"\u003e\n   \u003c/a\u003e\n   \u003cbr\u003e\n   \u003ci\u003e(Note: Hosted on Render's free tier, so it may load slowly at first or become inactive over time.)\u003c/i\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n   \u003cimg src=\"misc/mockup.png\" width=\"500\"\u003e\n\u003c/div\u003e\n\n---\n\n**Chatterbox** is a **lightweight**, **real-time** chat application designed for **seamless** and **reliable** communication. Users can easily **register**, **log in**, and **exchange messages** in a **secure** and **efficient** environment.\n\nBuilt using **modern technologies**, Chatterbox delivers **stable performance** and **real-time functionality** while maintaining **simplicity** and **ease of use**. Its **intuitive design** focuses on **essential features**, ensuring **quick deployment** and **straightforward maintenance**, making it an ideal solution for various scenarios.\n\n*(Note: ChatterBox is a personal hobby project developed in spare time. It is currently in its early stages, serving as a preliminary version designed for learning and experimentation, with many features still under development.)*\n\n---\n\n## 📚 Table of Contents\n1. [🌟 Features](#-features)\n2. [🛠️ Technologies Used](#️-technologies-used)\n3. [📦 Installation](#-installation)\n   - [Prerequisites](#prerequisites)\n   - [Method 1: Docker Setup (Recommended)](#method-1-docker-setup-recommended)\n   - [Method 2: Local Setup (Without Docker)](#method-2-local-setup-without-docker)\n   - [Method 3: Devcontainer Setup (For Development)](#method-3-devcontainer-setup-for-development)\n4. [🧑‍💻 Usage](#-usage)\n5. [📂 File Structure](#-file-structure)\n6. [🚀 Future Enhancements](#-future-enhancements)\n7. [🐞 Known Bugs](#-known-bugs)\n8. [📜 License](#-license)\n9. [🙏 Acknowledgments](#-acknowledgments)\n10. [👤 Author](#-author)\n\n## 🌟 Features\n\n- 🔒 **User Authentication**: Secure registration, login, and logout functionality.\n- ⚡ **Real-Time Messaging**: Chat seamlessly with real-time updates.\n- 📱 **Responsive Design**: Optimized for monitors of all sizes.\n- 🗂️ **Database**: Messages and user data are stored in a robust database.\n\n## 🛠️ Technologies Used\n\n- **Backend**: Python 3, Flask, SQLAlchemy, Socket.IO, Gunicorn, Eventlet, Jinja2\n- **Frontend**: HTML, JavaScript, CSS, Bootstrap\n- **Database**: SQLite\n- **Environment**: Docker, Bash, Devcontainers\n\n## 📦 Installation\n\n### Prerequisites\n\n- Python 3.10+\n- Docker\n\n### Method 1: Docker Setup (Recommended)\n\nJust run the application using:\n```bash\ndocker compose up -d\n```\nThe application will be accessible at [http://0.0.0.0:8081](http://0.0.0.0:8081).  \nTo stop the application, run `docker compose down`.\n\n\n### Method 2: Local Setup (Without Docker)\n\n1. **Install Dependencies (First Run Only)**:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n2. **Initialize the Database (First Run Only)**:\n   ```bash\n   python init_db.py\n   ```\n\n3. **Run the Application**:\n   ```bash\n   python app.py\n   ```\n   The application will be accessible at [http://127.0.0.1:5000](http://127.0.0.1:5000).  \n   To stop the application, press `Ctrl + C` in the terminal running the app.\n\n### Method 3: Devcontainer Setup (For Development)\n\n1. Open the project in a development environment that supports Devcontainers (e.g., Visual Studio Code).\n2. Follow prompts to build and open the container.\n3. The enviroment will be set up automatically based on the `devcontainer.json`.\n4. Run `python init_db.py` (first run only), and then `python app.py`.\n\nTo stop the application, press `Ctrl + C` in the terminal running the app.\n\n## 🧑‍💻 Usage\n\n1. Open the application in your browser.\n2. Register a new user account.\n3. Log in using your credentials.\n4. Start chatting!\n\n## 📂 File Structure\n\n```\nchatterbox/\n│\n├── app.py                  # Main application logic\n├── docker-compose.yaml     # Defines container(s) setup\n├── Dockerfile              # Builds the Docker image\n├── entrypoint.sh           # Script to initialize the app\n├── event_handlers.py       # Event handling logic\n├── helpers.py              # Helper functions and decorators\n├── init_db.py              # Database initialization script\n├── LICENSE                 # Project license\n├── models.py               # Database models\n├── README.md               # Project documentation\n├── requirements.txt        # Python dependencies\n├── .gitattributes          # Gitattributes file\n├── .gitignore              # Gitignore file\n│\n├── instance/\n│   └── chatterbox.db       # SQLite database file\n│\n├── misc/                   # Miscellaneous files\n│\n├── static/                 # Static files\n│   ├── favicon.ico         # Favicon\n│   ├── logo.png            # Logo image\n│   ├── scripts.js          # JavaScript for the website\n│   ├── styles.css          # CSS for styling\n│   └── websocket.js        # WebSocket JavaScript\n│\n├── templates/              # HTML templates\n│   ├── author.html         # Author information page\n│   ├── chat.html           # Chat page template\n│   ├── home.html           # Homepage template\n│   ├── layout.html         # Base layout template\n│   ├── login.html          # Login page template\n│   └── register.html       # Registration page template\n│\n└── .devcontainer/\n    └── devcontainer.json   # Dev container configuration\n```\n\n## 🚀 Future Enhancements\n\n- **User Profiles**: Add user profile pages and the ability to update account details.\n- **Media Sharing**: Add support for files, images, and videos in chats.\n- **Mobile Optimization**: Ensure the chat interface is responsive and works seamlessly on mobile devices.\n- **Enhanced UI**: Improve the design and usability of the chat interface.\n- **React Front-End (Optional)**: Migrate the front-end to React for a more dynamic and modern user experience.\n\n## 🐞 Known Bugs\n- None at the moment. All identified issues have been resolved.\n\n## 📜 License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Harvard's CS50x course for inspiration and foundational knowledge.\n- The Flask and Bootstrap communities for providing excellent documentation and tools.\n\n## 👤 Author\nFilip Rokita  \n[www.filiprokita.com](https://www.filiprokita.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiliprokita%2Fchatterbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiliprokita%2Fchatterbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiliprokita%2Fchatterbox/lists"}