https://github.com/daniilmipt/chat-room
Decentralized (децентрализованное) chatroom application built with Golang and HTML, JS
https://github.com/daniilmipt/chat-room
ai decentralized-applications frontend go-libp2p-pubsub golang ipfs javascript open-source
Last synced: 4 months ago
JSON representation
Decentralized (децентрализованное) chatroom application built with Golang and HTML, JS
- Host: GitHub
- URL: https://github.com/daniilmipt/chat-room
- Owner: Daniilmipt
- Created: 2025-01-15T08:55:03.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-02T13:00:38.000Z (over 1 year ago)
- Last Synced: 2025-03-29T21:11:23.533Z (about 1 year ago)
- Topics: ai, decentralized-applications, frontend, go-libp2p-pubsub, golang, ipfs, javascript, open-source
- Language: HTML
- Homepage:
- Size: 468 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Chatroom Application
## Overview
This is a decentralized (децентрализованное) chatroom application built with Golang and `go-libp2p-pubsub` library for peer-to-peer communication. Also you can join `AI bot` in your chat
## Example Workflow
1. Start the first instance of the application:
```bash
./chatroom
```
2. Login:

3. Send message:

4. Start another instance of the application on the same network and send message:
```bash
./chatroom
```

5. If we click on `Chat List` we go on page:

6. If you want to add AI bot, then go to `cd ai/model` and run `python3.9 main.py`. After ypu can clikc on `Create Bot` and set bot nickname. After each message in chat he will answer you
### Features
- AI bot
- Decentralized chatroom communication using `go-libp2p-pubsub`.
- Front-end built with HTML, CSS, and JavaScript.
- User session management via cookies.
- Live updates for chatroom lists and messages.
- File uploading and showing.
## Future
### Technical
- Display last file messages. Now it will display only text messages.
- Add video files. Now you can not watch it, because we often refresh all current messages.
- Configure network for production. When users from different devices can chatting.
- Add authentification mechanism. Where you can create private rooms.
- Do fasthttp.
- Replace REST api calls between frontend and backend.
### Others
- Transform to social network. Send not only messages, but posts and other.
- Add monetization and own currency.