This project began as a school assignment to develop a socket-based
chatroom application with real-time messaging, user authentication, and friend request
management. Initially, the objective was to create a basic messaging system, but as
development progressed, it evolved into a fully functional multi-user chat platform. The
application utilizes Python for backend logic, SQLite for storing user data, and Tkinter for
an intuitive graphical user interface. By leveraging socket programming, users can send and
receive messages instantly while managing their contacts through friend requests.
A major challenge was ensuring seamless real-time communication while maintaining smooth
performance. By integrating multi-threading, the application allows multiple users to chat
simultaneously without lag. The SQLite database ensures efficient storage of user credentials,
messages, and friend lists, providing reliable data persistence. The friend request system
enables users to connect and manage their relationships, enhancing the chat experience beyond
simple messaging.
What started as a straightforward assignment quickly grew into a dynamic and interactive
application. This project provided valuable hands-on experience in networking, database
management, and user interface design. It transformed a classroom exercise into a rewarding
challenge, showcasing the power of real-time communication and expanding our technical
knowledge in software development.
Features:
User Management:
- Secure Authentication: Sign-up and login functionality with credentials stored safely in an SQLite database.
- Friend Requests: Send, accept, or reject friend requests and manage a personal friends list.
Real-Time Communication:
Real-Time Communication:
- Instant Messaging: Users can send and receive messages in real time using socket programming.
- Multi-User Support: Allows multiple clients to connect to the server simultaneously for seamless interactions.
Interface & Data Handling:
- User-Friendly GUI: Built with Tkinter for a responsive and interactive chat experience.
- Reliable Storage: SQLite database stores user accounts, messages, and friend relationships for data persistence and security.
Technologies Used:
- Python: The core programming language used for backend logic and socket communication.
- SQLite: A lightweight database management system used to store user data, messages, and friend requests.
- Tkinter: A GUI library used to build a responsive and user-friendly chat interface.
- Sockets: A networking library used to enable real-time communication between the client and server.
GitHub Repository