A secure, real-time messaging application built with Python, featuring Socket communication, SQLite backend, and a modern CustomTkinter GUI with AES encryption.
Kaman Messenger is designed for users seeking a secure, lightweight, and real-time communication platform. It uniquely combines a Socket-based server with a modern desktop client for seamless, encrypted messaging.
| Audience | Usage Method |
|---|---|
| End Users | Run the desktop client (kaman-messenger-client.exe) to connect to a running server. |
| Developers | Clone the repository, generate a security key, and run both server and client. |
- 🔐 Secure Encryption:
- AES Encryption (via
cryptography.fernet) for all network traffic. - Password hashing with Bcrypt for user security.
- AES Encryption (via
- 💬 Real-Time Messaging:
- Instant message delivery via TCP Sockets.
- Broadcast system for sending messages to all connected users.
- 🛡️ Security & Stability:
- Rate Limiting: Prevents spam by limiting messages per user (10 msgs/10s).
- Login Security: Timeout and attempt limiting.
- Secure Key Management: Separate
secret.keyfile generated at runtime.
- 🎨 Modern UI:
- Beautiful and responsive interface using CustomTkinter.
- Dark mode support and modern color palette.
- 🗄️ Reliable Data Storage:
- SQLite backend for persistent message and user storage.
- Simple setup with no external database server required.
- Python 3.10+
- pip (Python package manager)
git clone https://github.com/Mohammad-Hasan-Kaman/kaman-messenger.git
cd kaman-messengerpython -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activatepip install -r requirements.txtBefore running the server or client, you must generate a security key:
python MakeKey.pyThis creates a secret.key file used for AES encryption.
Start the Server:
python GoldServer.pyThe server will start on 127.0.0.1:5000 by default.
Start the Client:
python GoldClient.pyThe client will attempt to connect to the server automatically.
| Component | Technology |
|---|---|
| Backend | Python 3.10+, Socket, Threading |
| Database | SQLite (via sqlite3) |
| Security | cryptography.fernet, bcrypt |
| Frontend | CustomTkinter, Tkinter |
kaman-messenger/
├── GoldServer.py # TCP Server with encryption
├── GoldClient.py # Desktop client with GUI
├── MakeKey.py # Script to generate security key
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore rules
├── LICENSE # MIT License
└── CONTRIBUTING.md # Contribution guidelines
Note:
secret.key,gold_messenger.db, andserver.logare ignored from Git and generated at runtime.
Found a bug or have a feature request? Please open an Issue.
Contributions are welcome! See CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this tool useful, please give it a star! ⭐
Maintained by Mohammad Hasan Kaman | Last updated: July 2026
Note: This project is a work in progress. Some features may be under development or testing.