Socket Chat

Socket Chat App

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.
Socket Chat App




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.
Python




GitHub Repository