https://github.com/ammahmoudi/simple-messanger
simple chat application implemented in Python using a server-client architecture with groups and channels
https://github.com/ammahmoudi/simple-messanger
chat-application end-to-end-encryption messanger server-client
Last synced: 20 days ago
JSON representation
simple chat application implemented in Python using a server-client architecture with groups and channels
- Host: GitHub
- URL: https://github.com/ammahmoudi/simple-messanger
- Owner: ammahmoudi
- Created: 2024-03-03T15:12:00.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-07T23:26:47.000Z (over 2 years ago)
- Last Synced: 2025-01-15T07:31:17.387Z (over 1 year ago)
- Topics: chat-application, end-to-end-encryption, messanger, server-client
- Language: Python
- Homepage: https://simple-messanger-nine.vercel.app
- Size: 487 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Simple Chat App with Group and Channel Functionalities
This is a simple chat application implemented in Python using a server-client architecture. The app allows users to create groups, join groups, leave groups, create channels, join channels, leave channels, and send messages to groups and channels.
## Features
- **Server-Client Architecture**: The app is built using a client-server model where multiple clients can connect to a central server.
- **End-to-End Encryption**: Messages sent between clients and the server are encrypted using base64.
- **Timestamps**: Each message is timestamped to indicate when it was sent.
- **Group Management**: Users can create groups, join groups, and leave groups. Messages can be sent to specific groups.
- **Channel Management**: Users can create channels, join channels, and leave channels. Messages can be sent to specific channels.
- **Simple Command Line Interface (CLI)**: The app features a simple CLI for user interaction.
- **Usage of Sockets**: Sockets are used for communication between clients and the server.
## Screenshots


## Usage
1. Run `chat_server.py` on your server machine.
2. Run `chat_client.py` on different client machines or multiple times on the same machine.
3. Enter a username for each client.
4. Use commands to create groups, join groups, leave groups, create channels, join channels, leave channels, and send messages to groups and channels.
### Group Commands
- `/groupcreate group_name`: Creates a new group.
- `/groupjoin group_name`: Joins an existing group.
- `/groupleave group_name`: Leaves a group.
### Channel Commands
- `/channelcreate channel_name`: Creates a new channel.
- `/channeljoin channel_name`: Joins an existing channel.
- `/channelleave channel_name`: Leaves a channel.
### Sending Messages
- To send a message to a group: `/group group_name message`
- To send a message to a channel: `/channel channel_name message`
## Requirements
- Python 3.x
## Disclaimer
This chat application is a simplified example intended for educational purposes. It may not be suitable for use in production environments. Use at your own risk.