An open API service indexing awesome lists of open source software.

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

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



![2-user system design](https://i.imgur.com/uTkLGRM.png)

DataBase Design



![Database Design Overview](https://i.imgur.com/tDzaQdw.png)

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
```