https://github.com/tireon003/instant-messaging-app
A simple real-time chatting full-stack application.
https://github.com/tireon003/instant-messaging-app
aiogram3 aiohttp alembic celery fastapi-sqlalchemy full-stack messanger postgresql react redis tailwindcss websocket
Last synced: 15 days ago
JSON representation
A simple real-time chatting full-stack application.
- Host: GitHub
- URL: https://github.com/tireon003/instant-messaging-app
- Owner: Tireon003
- Created: 2024-10-15T20:29:29.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-02-04T19:10:05.000Z (5 months ago)
- Last Synced: 2025-03-30T10:29:47.993Z (3 months ago)
- Topics: aiogram3, aiohttp, alembic, celery, fastapi-sqlalchemy, full-stack, messanger, postgresql, react, redis, tailwindcss, websocket
- Language: Python
- Homepage:
- Size: 274 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# instant-messaging-app
It's a completed full stack application for real-time messaging. The app provides users an opportunity to create profiles, create chats with others, exchange messages, see recipient's network status, see message's status.
### Functionality:
1. Authentication and authorization based on OAuth2 with JWT session tokens
2. Creating chats with users
3. Communication in real time with saving history in the database and subsequent loading
4. Automatic notifications about missed messages from users via a telegram bot when the user is offline### Stack
- SPA: Vite, JavaScript, React, Nginx, HTML5, Tailwind CSS, React-router, axios
- API: Python, REST API, FastAPI, Pydantic v2, SQLAlchemy v2, Alembic, Redis, Celery, Aiogram3, WebSockets, PostgreSQL
- Telegram bot: Aiogram3, Aiohttp### How to run locally
1. Install Docker (if not installed)
2. Install Git (if not installed)
3. Create new telegram bot (via @BotFather)
4. Open terminal and open the folder where you want to place the project
5. Enter command:
```shell
git clone https://github.com/Tireon003/instant-messaging-service
```
6. Enter to project folder and create .env file. It should contain the next variables:
```editorconfig
BOT_TOKEN= // bot api key received from @BotFatherDB_NAME=
DB_HOST=msg_db // don't touch
DB_USER=
DB_PORT=
DB_PASS=API_HOST=
API_PORT=JWT_SECRET=
LOG_LEVEL="INFO" //you can change log level if want
```
7. Enter command to build and start app:
```shell
docker-compose up -d --build
```
8. Wait for the project to be builtWell, now application is available on url:
```text
http://localhost:8080/ # react app
http://localhost:8080/docs # fastapi docs
```
The next url's are available:
- /login - page for log in
- /register - page for sign up
- /chat - Main page for chatting