{"id":23366663,"url":"https://github.com/dhruvikdonga/wordsbattle","last_synced_at":"2025-04-10T14:03:37.191Z","repository":{"id":202860738,"uuid":"636950929","full_name":"DhruvikDonga/wordsbattle","owner":"DhruvikDonga","description":"text based games more to come","archived":false,"fork":false,"pushed_at":"2024-01-06T13:05:26.000Z","size":4521,"stargazers_count":23,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-07T08:00:12.143Z","etag":null,"topics":["gameserver","golang","vuejs","websocket"],"latest_commit_sha":null,"homepage":"http://www.miniwordgames.com","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/DhruvikDonga.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}},"created_at":"2023-05-06T04:04:18.000Z","updated_at":"2024-09-07T04:22:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"4ecfb1c2-ddd4-4c0e-9e36-4084239eb7be","html_url":"https://github.com/DhruvikDonga/wordsbattle","commit_stats":null,"previous_names":["dhruvikdonga/wordsbattle"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvikDonga%2Fwordsbattle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvikDonga%2Fwordsbattle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvikDonga%2Fwordsbattle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvikDonga%2Fwordsbattle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DhruvikDonga","download_url":"https://codeload.github.com/DhruvikDonga/wordsbattle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248230818,"owners_count":21069220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["gameserver","golang","vuejs","websocket"],"created_at":"2024-12-21T14:17:13.501Z","updated_at":"2025-04-10T14:03:37.151Z","avatar_url":"https://github.com/DhruvikDonga.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# WordsBattle\n\nMiniWordGames is an engaging multiplayer word game that combines the thrill of real-time battles with the challenge of word creation. This project utilizes Golang for the backend server, Vue.js for the frontend application, WebSocket for real-time communication, and Docker for easy deployment. The game is hosted under the domain [miniwordgames.com](http://miniwordgames.com).\n\n## Tech Stack  \n![Go](https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge\u0026logo=go\u0026logoColor=white) ![Vue.js](https://img.shields.io/badge/vuejs-%2335495e.svg?style=for-the-badge\u0026logo=vuedotjs\u0026logoColor=%234FC08D) ![Vuetify](https://img.shields.io/badge/Vuetify-1867C0?style=for-the-badge\u0026logo=vuetify\u0026logoColor=AEDDFF) ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white) \t![AWS](https://img.shields.io/badge/AWS-%23FF9900.svg?style=for-the-badge\u0026logo=amazon-aws\u0026logoColor=white) \n\n## Features\n\n- **Real-time Battles:** Challenge your friends or random opponents to fast-paced word battles.\n- **WebSocket Integration:** Enjoy seamless and instant communication between players for a responsive gaming experience.\n- **Golang Backend:** Utilizes the power of Golang to handle server-side logic efficiently.\n- **Vue.js Frontend:** A dynamic and interactive user interface designed with Vue.js for a smooth gaming experience.\n- **Dockerized Multistaged Deployment:** Easily deploy and manage the application using Docker containers which are small and lightweight.\n\n## SimplySocket\n\nWordsbattle uses simplysocket package for better rooms,events and message [link](https://github.com/DhruvikDonga/simplysocket)\n\n## Architecture  \n```mermaid\ngraph TD\n    A[Vue Client] --\u003e B[Go Server]\n    B --\u003e C[HTTP server]\n    B ==\u003e D[Websocket client upgrader]\n    D ==\u003e E[Concurrent client reader]\n    D --\u003e F[Concurrent client writer]\n    B ==\u003e G[Game Server]\n    G -.-\u003e|manage the rooms and clients \u003cbr\u003e Manage the lobby for random rooms| H[Room Server \u003csmall\u003e\u003ci\u003eid:-axGrw\u003c/i\u003e\u003c/small\u003e]\n    E --\u003e|Usecases \u003cbr\u003eLobby server for random games connect two users create a room|G\n    G --\u003e|Usecases \u003cbr\u003eGive user notificatons incase of room is not connected due to reasons|F\n    B --\u003e H\n    E ==\u003e|send the data from client to room server| H\n    H ==\u003e F\n    F ==\u003e|Send data to all the clients in list| A\n    H \u003c--\u003e I[Game State Manager \u003cbr\u003e \u003csmall\u003e\u003cul\u003e\u003cli\u003eGame algorithm\u003c/li\u003e\u003cli\u003eSend Game State to the \u003cbr\u003eUI client on time ticker\u003c/li\u003e\u003cli\u003e\u003cb\u003eProcess the data of the user\u003c/b\u003e\u003c/li\u003e\u003c/ul\u003e \u003c/small\u003e]\n    H -.-\u003e|Send game state data \u003cbr\u003e \u003c-ticker.C to all clients in a room|F\n```\n## Demo\n\nhttps://youtu.be/-9HrFUU_jfs?si=RhmSZE6-uSq-6M8f  \nLive :- http://miniwordgames.com\n\n## Project Setup\nwordsbattle uses Docker for deployment and project creation you can find docker-compose.yaml  in repo .\n\n```\ngit clone git@github.com:DhruvikDonga/wordsbattle.git\ncd miniwordgames\n\ndocker-compose build\ndocker-compose up\n```\n\n## Interested to contribute \nCheckout this issue :- https://github.com/DhruvikDonga/wordsbattle/issues/12 \nDev Branch :- https://github.com/DhruvikDonga/wordsbattle/tree/WB-8\n\n## Authors\n\n- [@Dhruvik D.](https://www.github.com/DhruvikDonga)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhruvikdonga%2Fwordsbattle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhruvikdonga%2Fwordsbattle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhruvikdonga%2Fwordsbattle/lists"}