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.
Built 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.
(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.)
- π Features
- π οΈ Technologies Used
- π¦ Installation
- π§βπ» Usage
- π File Structure
- π Future Enhancements
- π Known Bugs
- π License
- π Acknowledgments
- π€ Author
- π User Authentication: Secure registration, login, and logout functionality.
- β‘ Real-Time Messaging: Chat seamlessly with real-time updates.
- π± Responsive Design: Optimized for monitors of all sizes.
- ποΈ Database: Messages and user data are stored in a robust database.
- Backend: Python 3, Flask, SQLAlchemy, Socket.IO, Gunicorn, Eventlet, Jinja2
- Frontend: HTML, JavaScript, CSS, Bootstrap
- Database: SQLite
- Environment: Docker, Bash, Devcontainers
- Python 3.10+
- Docker
Just run the application using:
docker compose up -dThe application will be accessible at http://0.0.0.0:8081.
To stop the application, run docker compose down.
-
Install Dependencies (First Run Only):
pip install -r requirements.txt
-
Initialize the Database (First Run Only):
python init_db.py
-
Run the Application:
python app.py
The application will be accessible at http://127.0.0.1:5000.
To stop the application, pressCtrl + Cin the terminal running the app.
- Open the project in a development environment that supports Devcontainers (e.g., Visual Studio Code).
- Follow prompts to build and open the container.
- The enviroment will be set up automatically based on the
devcontainer.json. - Run
python init_db.py(first run only), and thenpython app.py.
To stop the application, press Ctrl + C in the terminal running the app.
- Open the application in your browser.
- Register a new user account.
- Log in using your credentials.
- Start chatting!
chatterbox/
β
βββ app.py # Main application logic
βββ docker-compose.yaml # Defines container(s) setup
βββ Dockerfile # Builds the Docker image
βββ entrypoint.sh # Script to initialize the app
βββ event_handlers.py # Event handling logic
βββ helpers.py # Helper functions and decorators
βββ init_db.py # Database initialization script
βββ LICENSE # Project license
βββ models.py # Database models
βββ README.md # Project documentation
βββ requirements.txt # Python dependencies
βββ .gitattributes # Gitattributes file
βββ .gitignore # Gitignore file
β
βββ instance/
β βββ chatterbox.db # SQLite database file
β
βββ misc/ # Miscellaneous files
β
βββ static/ # Static files
β βββ favicon.ico # Favicon
β βββ logo.png # Logo image
β βββ scripts.js # JavaScript for the website
β βββ styles.css # CSS for styling
β βββ websocket.js # WebSocket JavaScript
β
βββ templates/ # HTML templates
β βββ author.html # Author information page
β βββ chat.html # Chat page template
β βββ home.html # Homepage template
β βββ layout.html # Base layout template
β βββ login.html # Login page template
β βββ register.html # Registration page template
β
βββ .devcontainer/
βββ devcontainer.json # Dev container configuration
- User Profiles: Add user profile pages and the ability to update account details.
- Media Sharing: Add support for files, images, and videos in chats.
- Mobile Optimization: Ensure the chat interface is responsive and works seamlessly on mobile devices.
- Enhanced UI: Improve the design and usability of the chat interface.
- React Front-End (Optional): Migrate the front-end to React for a more dynamic and modern user experience.
- None at the moment. All identified issues have been resolved.
This project is licensed under the MIT License. See the LICENSE file for details.
- Harvard's CS50x course for inspiration and foundational knowledge.
- The Flask and Bootstrap communities for providing excellent documentation and tools.
Filip Rokita
www.filiprokita.com

