https://github.com/ashvegeta/whisperwave-backend
A simple chat application written in Golang
https://github.com/ashvegeta/whisperwave-backend
chat-application dynamodb golang gorilla-mux socket-programming system-design-project websockets
Last synced: 4 months ago
JSON representation
A simple chat application written in Golang
- Host: GitHub
- URL: https://github.com/ashvegeta/whisperwave-backend
- Owner: ashvegeta
- License: mit
- Created: 2023-12-28T18:25:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-22T22:48:50.000Z (5 months ago)
- Last Synced: 2025-01-22T23:26:46.098Z (5 months ago)
- Topics: chat-application, dynamodb, golang, gorilla-mux, socket-programming, system-design-project, websockets
- Language: Go
- Homepage:
- Size: 38.9 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
WhisperWave
A simple chat application written in Golang
About
WhisperWave is an application that emerged as a hobby project to understand and simulate real-time chat applications. To understand in detail, the project structure, data flow and the thinking process behind the database design, click on the medium
[post](https://medium.com/@1ms18cs030/my-experience-in-building-a-chat-application-in-golang-f0b815d7b7ae).System Design
DataBase Design
Tech Stack
![]()
![]()
Project Setup
1. To set up the project, clone the repository by typing:
```
git clone
```4. Install all the golang modules declared in ```go.mod``` file using:
```
go mod download
```6. Follow the official RabbitMQ documentation or visit dockerhub to download the server image:
```
docker pull rabbitmq:3.12-management
```
8. Run the RabbitMQ docker container and map it to the port of your liking:```shell
docker run -d --hostname [your-hostname] --name [docker-server-name] -p [service-port]:5672 -p [management-port]:15672 rabbitmq:3.12-management
```
9. Confgure AWS Credentials using AWS CLI:
```
aws configure
```9. Enter the root directory of the project where the MakeFile is present and type:
```
make
```