Realtime chat application using websockets and golang.
- Golang
- Websockets
- MongoDB
- Crypto
- JWT
- Realtime chat
- User authentication
- User registration
- User search
- Channel creation
- Channel listing
- Clone the repository
- Run
go mod tidy
- Run application at port 3020
go run .
- Register a new user
curl -X POST http://localhost:3020/signup -d '{"username": "test" ,"name": "test" ,"password": "test"}'
- Login with the registered user
curl -X POST http://localhost:3020/login -d '{"username": "test" ,"password": "test"}'
- List all users
curl -X GET http://localhost:3020/users
- Create a new channel
curl -X POST http://localhost:3020/channels -d '{"user": "__userID__"}' -H "Authorization: Bearer __JWT__"
- List all channels
curl -X GET http://localhost:3020/channels -H "Authorization: Bearer __JWT__"
- List all messages in a channel
curl -X GET http://localhost:3020/messages/{channelID} -H "Authorization: Bearer __JWT__"
- Start the chat [WEBSOCKET]
connect at ws://localhost:3020/{channelID}?token=__JWT__
- Verify Dockerfile
- Kafka integration
- Redis integration
- Frontend Templates
- Group chat
- Message encryption
- CI/CD