{"id":37790382,"url":"https://github.com/aayushxrj/gochat","last_synced_at":"2026-01-16T15:16:15.635Z","repository":{"id":242125687,"uuid":"802393831","full_name":"aayushxrj/gochat","owner":"aayushxrj","description":"A Real-time chat application utilizing WebSockets, crafted with Go(lang) for the backend and React.js for the frontend.","archived":false,"fork":false,"pushed_at":"2025-07-25T17:30:11.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-26T00:03:51.241Z","etag":null,"topics":["chatroom","golang","reactjs","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aayushxrj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-18T07:10:00.000Z","updated_at":"2025-07-25T17:30:15.000Z","dependencies_parsed_at":"2024-05-31T19:55:53.022Z","dependency_job_id":"944c806f-b848-405c-883f-73b486c77373","html_url":"https://github.com/aayushxrj/gochat","commit_stats":null,"previous_names":["aayushxrj/gochat"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/aayushxrj/gochat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushxrj%2Fgochat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushxrj%2Fgochat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushxrj%2Fgochat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushxrj%2Fgochat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aayushxrj","download_url":"https://codeload.github.com/aayushxrj/gochat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushxrj%2Fgochat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479406,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatroom","golang","reactjs","websocket"],"created_at":"2026-01-16T15:16:15.201Z","updated_at":"2026-01-16T15:16:15.615Z","avatar_url":"https://github.com/aayushxrj.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoChat\n\nGoChat is a real-time chat application built with Go for the backend and React for the frontend. It uses WebSockets for real-time communication between clients and the server.\n\n![Screenshot (767)](https://github.com/aayushxrj/gochat/assets/111623667/2a70f795-ef8b-4cab-8de6-20b6a154b442)\n\n![Screenshot (769)](https://github.com/aayushxrj/gochat/assets/111623667/1216c508-98c2-491d-9bd8-76505dd461dc)\n\n## Quick Start\n\n### Clone the Repository\n\n```\ngit clone https://github.com/aayushxrj/gochat\n```\n\n### Navigate to the Project Directory\n\n```\ncd ./gochat/\n```\n\nNow you can get the app up and running. You can do this either by running it locally on your machine or via [Docker](https://www.docker.com/) or within a [GitHub Codespace](https://github.com/features/codespaces).\n\n### Local Usage\n\nTo get started with GoChat, you need to have Go and Node.js installed on your machine. Go is used for running the backend server, and Node.js is used for managing frontend dependencies and running the development server.\n\n1. Install Prerequisites\n\n- [Go](https://go.dev/) (1.22.2 or later)\n- [Node.js](https://nodejs.org/en) (19.8.1 or later)\n\n2. Start the backend server\n\n```\ncd src/backend/\n```\n```\ngo run .\n```\n\n3. Start the frontend development server\n   \n  Open a new terminal session and run:\n\n```\nnpm install\n```\n```\nnpm run dev\n```\n\nYou can access the app at `http://localhost:5173/`\n\n### Docker Usage\n\nIf you have Docker installed and running, you can also run the application using Docker. Follow these steps:\n\n#### Using Docker Compose\n\nDirectly pull and run from Docker Hub (recommended):\n\n```\ndocker-compose up\n```\n\nor Build and run the Docker image locally:\n\n```\ndocker-compose up --build\n```\n\nYou can access the app at `http://localhost:5173/`\n\n### GitHub Codespaces Usage\n\nIf you're running this inside a GitHub Codespace, follow these steps to get the app up and running:\n\n1. Execute the following command in the terminal to get the Codespace name:\n\n```\nexport $CODESPACE_NAME\n```\n\n2. Copy the output and add it to the .env file in the root directory of the project. Your dotenv file should look like this:\n\n```\nVITE_CODESPACE_NAME=your_codespace_name\n```\n\n3. Build and run the Docker image:\n\n```\ndocker-compose up --build\n```\n\nYou can then access the app at `https://your_codespace_name-5173.app.github.dev/`\n\n### Kubernetes Usage\n\nTo run GoChat using Kubernetes locally, you'll need to install a few prerequisites and use Minikube to create a local cluster with multiple nodes.\n\n#### 1. Install Prerequisites\n\n- [kubectl](https://kubernetes.io/docs/tasks/tools/) (Kubernetes CLI)\n- [Minikube](https://minikube.sigs.k8s.io/docs/start/) (1.32.0 or later)\n\nEnsure virtualization is enabled on your system (e.g., Hyper-V, VirtualBox, or Docker driver installed).\n\n#### 2. Start a Minikube Cluster with 2 Nodes\n\nStart Minikube with 2 nodes using:\n\n```\nminikube start --nodes=2\n```\n\n**Optional (for WSL/Windows users):** Start Minikube with Docker driver and custom resources:\n\n```\nminikube start --nodes=2 --driver=docker --cpus=2 --memory=2200\n```\n\nYou can verify the nodes are running with:\n\n```\nkubectl get nodes\n```\n\n#### 3. Deploy the Application\nNavigate to the root of the project and apply the Kubernetes manifests:\n\n```\nkubectl apply -f kubernetes/\n```\nThis will create:\n\n1. Deployments for frontend and backend\n\n2. Services to expose them\n\n3. Horizontal Pod Autoscalers (HPA)\n\n4. (Optional) Vertical Pod Autoscalers (VPA), if CRDs are installed\n\n#### 4. Access the Application\nExpose the frontend service using Minikube:\n\n```\nminikube service frontend-service\n```\n\nThis will open the app in your default browser.\n\n## Using the Application\n\n![Screenshot (768)](https://github.com/aayushxrj/gochat/assets/111623667/6beaf96f-7362-47e7-927e-d4cb9c4ef84b)\n\n- Join the chat\n  \nWhen you first open the GoChat application, you will be prompted to enter a username. Enter a username of your choice and click \"Join\" to enter the chat room.\n\n- Send a message\n  \nOnce in the chat room, you can start typing messages in the input field at the bottom of the screen and click the \"Send\" button to send a message.\n\n- Receive messages\n  \nMessages from other users will appear in real-time. You can see who sent each message along with the message content.\n\n## Contributing\n\nContributions to GoChat are welcome! If you have an idea for an improvement or have found a bug, please open an issue or submit a pull request\n\n## License\n\nGoChat is open-source software licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faayushxrj%2Fgochat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faayushxrj%2Fgochat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faayushxrj%2Fgochat/lists"}