Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 17 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 (11 months ago)
- Default Branch: main
- Last Pushed: 2024-03-07T23:26:47.000Z (11 months ago)
- Last Synced: 2024-11-15T02:06:07.334Z (3 months 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
![sc1](/screenshots/sc_1.png)
![sc2](/screenshots/sc_2.png)
## 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.