├── .github └── workflows │ └── pipeline.yaml ├── .gitignore ├── Dockerfile ├── README.md ├── assets ├── architecture_design.py ├── diagrams_image.png └── home.png ├── docker-compose.yml ├── go.mod ├── go.sum ├── kafka-consumer ├── Dockerfile ├── config │ └── config.go ├── database │ ├── entities.go │ └── postgres.go ├── go.mod ├── go.sum ├── kafka │ └── kafka.go ├── main.go └── processor │ ├── message.go │ └── processor.go ├── llm ├── Dockerfile └── entrypoint.sh ├── nginx.conf ├── sample.env ├── src ├── auth │ ├── handler.go │ └── middleware.go ├── cache │ ├── pubsub.go │ └── redis.go ├── chat │ ├── handler.go │ ├── message.type.go │ ├── rooms.go │ └── user.connections.go ├── config │ └── config.go ├── database │ ├── connection.go │ └── entities.go ├── kafka │ └── kafka.go ├── main.go ├── models │ └── models.go └── utils │ └── utils.go ├── terraform ├── main.tf ├── output.tf ├── provider.tf └── variables.tf └── web ├── Dockerfile ├── nginx.frontend.conf ├── package-lock.json ├── package.json ├── public ├── chat.png ├── favicon.ico ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt └── src ├── App.css ├── App.js ├── App.test.js ├── WebsocketContext.js ├── api └── api.js ├── assets └── home1.jpg ├── components ├── ChatRoom.js ├── HomeButton.js ├── JoinRoom.js ├── LandingPage.js ├── Login.js └── Signup.js ├── index.css ├── index.js ├── logo.svg ├── reportWebVitals.js └── setupTests.js /.github/workflows/pipeline.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/.github/workflows/pipeline.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/Dockerfile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/README.md -------------------------------------------------------------------------------- /assets/architecture_design.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/assets/architecture_design.py -------------------------------------------------------------------------------- /assets/diagrams_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/assets/diagrams_image.png -------------------------------------------------------------------------------- /assets/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/assets/home.png -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/go.sum -------------------------------------------------------------------------------- /kafka-consumer/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/Dockerfile -------------------------------------------------------------------------------- /kafka-consumer/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/config/config.go -------------------------------------------------------------------------------- /kafka-consumer/database/entities.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/database/entities.go -------------------------------------------------------------------------------- /kafka-consumer/database/postgres.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/database/postgres.go -------------------------------------------------------------------------------- /kafka-consumer/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/go.mod -------------------------------------------------------------------------------- /kafka-consumer/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/go.sum -------------------------------------------------------------------------------- /kafka-consumer/kafka/kafka.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/kafka/kafka.go -------------------------------------------------------------------------------- /kafka-consumer/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/main.go -------------------------------------------------------------------------------- /kafka-consumer/processor/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/processor/message.go -------------------------------------------------------------------------------- /kafka-consumer/processor/processor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/kafka-consumer/processor/processor.go -------------------------------------------------------------------------------- /llm/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/llm/Dockerfile -------------------------------------------------------------------------------- /llm/entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/llm/entrypoint.sh -------------------------------------------------------------------------------- /nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/nginx.conf -------------------------------------------------------------------------------- /sample.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/sample.env -------------------------------------------------------------------------------- /src/auth/handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/auth/handler.go -------------------------------------------------------------------------------- /src/auth/middleware.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/auth/middleware.go -------------------------------------------------------------------------------- /src/cache/pubsub.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/cache/pubsub.go -------------------------------------------------------------------------------- /src/cache/redis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/cache/redis.go -------------------------------------------------------------------------------- /src/chat/handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/chat/handler.go -------------------------------------------------------------------------------- /src/chat/message.type.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/chat/message.type.go -------------------------------------------------------------------------------- /src/chat/rooms.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/chat/rooms.go -------------------------------------------------------------------------------- /src/chat/user.connections.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/chat/user.connections.go -------------------------------------------------------------------------------- /src/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/config/config.go -------------------------------------------------------------------------------- /src/database/connection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/database/connection.go -------------------------------------------------------------------------------- /src/database/entities.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/database/entities.go -------------------------------------------------------------------------------- /src/kafka/kafka.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/kafka/kafka.go -------------------------------------------------------------------------------- /src/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/main.go -------------------------------------------------------------------------------- /src/models/models.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/models/models.go -------------------------------------------------------------------------------- /src/utils/utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/src/utils/utils.go -------------------------------------------------------------------------------- /terraform/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/terraform/main.tf -------------------------------------------------------------------------------- /terraform/output.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/terraform/output.tf -------------------------------------------------------------------------------- /terraform/provider.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/terraform/provider.tf -------------------------------------------------------------------------------- /terraform/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/terraform/variables.tf -------------------------------------------------------------------------------- /web/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/Dockerfile -------------------------------------------------------------------------------- /web/nginx.frontend.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/nginx.frontend.conf -------------------------------------------------------------------------------- /web/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/package-lock.json -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/package.json -------------------------------------------------------------------------------- /web/public/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/public/chat.png -------------------------------------------------------------------------------- /web/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/public/favicon.ico -------------------------------------------------------------------------------- /web/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/public/index.html -------------------------------------------------------------------------------- /web/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/public/logo192.png -------------------------------------------------------------------------------- /web/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/public/logo512.png -------------------------------------------------------------------------------- /web/public/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/public/manifest.json -------------------------------------------------------------------------------- /web/public/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/public/robots.txt -------------------------------------------------------------------------------- /web/src/App.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/App.css -------------------------------------------------------------------------------- /web/src/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/App.js -------------------------------------------------------------------------------- /web/src/App.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/App.test.js -------------------------------------------------------------------------------- /web/src/WebsocketContext.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/WebsocketContext.js -------------------------------------------------------------------------------- /web/src/api/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/api/api.js -------------------------------------------------------------------------------- /web/src/assets/home1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/assets/home1.jpg -------------------------------------------------------------------------------- /web/src/components/ChatRoom.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/components/ChatRoom.js -------------------------------------------------------------------------------- /web/src/components/HomeButton.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/components/HomeButton.js -------------------------------------------------------------------------------- /web/src/components/JoinRoom.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/components/JoinRoom.js -------------------------------------------------------------------------------- /web/src/components/LandingPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/components/LandingPage.js -------------------------------------------------------------------------------- /web/src/components/Login.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/components/Login.js -------------------------------------------------------------------------------- /web/src/components/Signup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/components/Signup.js -------------------------------------------------------------------------------- /web/src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/index.css -------------------------------------------------------------------------------- /web/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/index.js -------------------------------------------------------------------------------- /web/src/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/logo.svg -------------------------------------------------------------------------------- /web/src/reportWebVitals.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/reportWebVitals.js -------------------------------------------------------------------------------- /web/src/setupTests.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoyalAJohney/Realtime-distributed-chat/HEAD/web/src/setupTests.js --------------------------------------------------------------------------------