https://github.com/iamgoatki/messendger_windl
Mини-приложение, реализующее функционал чата с возможностью отправки сообщений, их хранения в базе данных и создания групповых чатов.
https://github.com/iamgoatki/messendger_windl
asyncio docker docker-compose fastapi jwt oauth2 openapi python rest-api sqlachemy sqlalchemy-orm swagger websocket
Last synced: 11 months ago
JSON representation
Mини-приложение, реализующее функционал чата с возможностью отправки сообщений, их хранения в базе данных и создания групповых чатов.
- Host: GitHub
- URL: https://github.com/iamgoatki/messendger_windl
- Owner: Iamgoatki
- Created: 2025-04-04T13:13:59.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-05T07:40:58.000Z (12 months ago)
- Last Synced: 2025-07-05T08:36:15.393Z (12 months ago)
- Topics: asyncio, docker, docker-compose, fastapi, jwt, oauth2, openapi, python, rest-api, sqlachemy, sqlalchemy-orm, swagger, websocket
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
```markdown
# 🗨️ Messendger: Your Next-Gen Chat Application
 
Welcome to **Messendger**, a mini-application that implements chat functionalities, allowing users to send messages, store them in a database, and create group chats. This project leverages modern technologies to deliver a robust and efficient chatting experience.
## 📦 Table of Contents
1. [Features](#features)
2. [Technologies Used](#technologies-used)
3. [Getting Started](#getting-started)
4. [Usage](#usage)
5. [API Documentation](#api-documentation)
6. [Contributing](#contributing)
7. [License](#license)
8. [Contact](#contact)
9. [Release Information](#release-information)
## 🚀 Features
- **Real-time Messaging**: Communicate instantly using WebSocket connections.
- **Group Chats**: Create and manage multiple group chats easily.
- **Persistent Storage**: Store messages and chat history securely in a SQL database.
- **Authentication**: Secure your application with JWT and OAuth2 standards.
- **OpenAPI & Swagger**: Automatically generated API documentation for easy integration.
- **Docker Support**: Simplify deployment with Docker and Docker Compose.
## 🛠️ Technologies Used
- **Python**: Core programming language for backend development.
- **FastAPI**: High-performance web framework for building APIs.
- **SQLAlchemy**: ORM for database interaction.
- **asyncio**: Library for concurrent code execution.
- **WebSocket**: For real-time communication.
- **JWT**: Token-based authentication.
- **Docker & Docker Compose**: For containerized application deployment.
## 🚧 Getting Started
To set up the Messendger application on your local machine, follow these steps:
### Prerequisites
- Ensure you have [Docker](https://www.docker.com/) installed.
- Install [Docker Compose](https://docs.docker.com/compose/install/).
- Make sure you have Python 3.8 or higher.
### Clone the Repository
```bash
git clone https://github.com/Iamgoatki/messendger_WinDl.git
cd messendger_WinDl
```
### Build and Run with Docker
```bash
docker-compose up --build
```
This command will build the images defined in the `docker-compose.yml` file and run the application.
### Accessing the Application
Once the application is running, you can access it via `http://localhost:8000`.
## 💻 Usage
To use the Messendger application, follow these steps:
1. Open your web browser and go to `http://localhost:8000`.
2. Register a new account or log in if you already have one.
3. Start a new chat or join existing group chats.
4. Enjoy real-time messaging!
## 📄 API Documentation
The API for Messendger is built with FastAPI. You can access the interactive API documentation at `http://localhost:8000/docs`. This interface allows you to test endpoints and see the available routes and methods.
Key API endpoints include:
- **POST /register**: Create a new user.
- **POST /login**: Authenticate a user and receive a JWT token.
- **GET /messages**: Retrieve messages from a chat.
- **POST /messages**: Send a new message.
- **GET /groups**: List all groups.
- **POST /groups**: Create a new group.
## 🤝 Contributing
Contributions are welcome! If you want to enhance this application, please follow these steps:
1. Fork the repository.
2. Create a new branch for your feature: `git checkout -b feature/YourFeature`.
3. Make your changes and commit them: `git commit -m 'Add some feature'`.
4. Push to the branch: `git push origin feature/YourFeature`.
5. Open a Pull Request.
## 📝 License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.
## 📞 Contact
For questions or inquiries, feel free to reach out via the following channels:
- **Email**: your_email@example.com
- **Twitter**: [@your_twitter_handle](https://twitter.com/your_twitter_handle)
## 🆕 Release Information
To download the latest release of Messendger, visit the [Releases section](https://github.com/Iamgoatki/messendger_WinDl/releases). Follow the instructions to download and execute the files.
---
Thank you for your interest in Messendger! We hope you enjoy using it and contributing to its growth.
```