{"id":48617685,"url":"https://github.com/webceyhan/multiplay-snake-game","last_synced_at":"2026-04-09T02:12:55.905Z","repository":{"id":38049128,"uuid":"457072497","full_name":"webceyhan/multiplay-snake-game","owner":"webceyhan","description":"Multiplay Snake Game using Vue + Websockets","archived":false,"fork":false,"pushed_at":"2024-04-03T17:51:25.000Z","size":183,"stargazers_count":1,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-28T21:08:04.182Z","etag":null,"topics":["bootstrap","css","express","game","html","javascript","nodejs","vite","vue","websocket"],"latest_commit_sha":null,"homepage":"https://multiplay-snake-game.onrender.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webceyhan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-02-08T19:22:01.000Z","updated_at":"2023-12-24T10:21:31.000Z","dependencies_parsed_at":"2023-12-24T11:19:58.001Z","dependency_job_id":"b5f43f98-f590-4b49-947b-d3088fdda30d","html_url":"https://github.com/webceyhan/multiplay-snake-game","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/webceyhan/multiplay-snake-game","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webceyhan%2Fmultiplay-snake-game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webceyhan%2Fmultiplay-snake-game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webceyhan%2Fmultiplay-snake-game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webceyhan%2Fmultiplay-snake-game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webceyhan","download_url":"https://codeload.github.com/webceyhan/multiplay-snake-game/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webceyhan%2Fmultiplay-snake-game/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31581889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bootstrap","css","express","game","html","javascript","nodejs","vite","vue","websocket"],"created_at":"2026-04-09T02:12:55.792Z","updated_at":"2026-04-09T02:12:55.881Z","avatar_url":"https://github.com/webceyhan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- AUTOMATION BADGES --\u003e\n\n[![CodeQL](https://github.com/webceyhan/multiplay-snake-game/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/webceyhan/multiplay-snake-game/actions/workflows/github-code-scanning/codeql)\n\n\u003c!-- LOGO (OPTIONAL) --\u003e\n\n\u003c!-- \u003cimg src=\"./src/assets/logo.png\" width=\"100px\"\u003e --\u003e\n\n \u003c!-- HEADER ///////////////////////////////////////////////////////////// --\u003e\n\n# Vite Multiplay Snake Game\n\nThis is a multiplay version of famous Snake Game to demonstrate how to utilize websockets for full duplex communication.\n\nIt consists of a backend server and a frontend application.\n\nBackend server was implemented using ExpressJs to serve the compiled frontend app as static content. And the WebSocket Server starts listening to the same port to respond socket messages.\n\nFrontend application is built with Vite + Vue 3 + Bootstrap. Client is automatically connected to the server using standart WebSocket API the on initial request, then awaiting user to enter his name and joing the channel.\n\n\u003cbr\u003e\n\u003c!-- REQUIREMENTS /////////////////////////////////////////////////////// --\u003e\n\n## Requirements\n\nYou need to install the [Node.js](https://nodejs.dev/)\nand `npm` package manager first.\n\n\u003e Recommended IDE:\n\u003e [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar)\n\n\u003cbr\u003e\n\u003c!-- INSTALLATION //////////////////////////////////////////////////////// --\u003e\n\n## Installation\n\n1. Clone the repository.\n    ```sh\n    git clone https://github.com/webceyhan/multiplay-snake-game.git\n    ```\n2. Get inside the cloned project folder.\n    ```sh\n    cd multiplay-snake-game\n    ```\n3. Install NPM packages.\n    ```sh\n    npm install\n    ```\n\n\u003cbr\u003e\n\u003c!-- USAGE /////////////////////////////////////////////////////////////// --\u003e\n\n## Usage\n\nYou can use following commands to do various task with the project.\n\n```sh\nnpm start               # run application\nnpm run dev             # start watching backend \u0026 frontend concurrently\nnpm run dev:backend     # start nodemon to watch backend app\nnpm run dev:frontend    # start vite to watch frontend app\nnpm run build           # build for production\nnpm run preview         # preview built app\n```\n\n\u003e Take a look at the other scripts in [`package.json`](./package.json)\n\n\u003cbr\u003e\n\u003c!-- DEVELOPMENT ///////////////////////////////////////////////////////// --\u003e\n\n## Development\n\nYou have to run both backend server and frontend development server concurrently to be able to develop application properly.\n\n```sh\nnpm run dev\n```\n\n\u003cbr\u003e\n\u003c!-- BUILDING //////////////////////////////////////////////////////////// --\u003e\n\n## Building\n\nBuild the frontend application for production.\n\n```sh\nnpm run build\n```\n\nTo preview, you still have to run the backend server which will serve the app and provide socket connectivity in order to make it work properly.\n\n```sh\nnpm run preview\n```\n\n\u003cbr\u003e\n\u003c!-- DEPLOYMENT ////////////////////////////////////////////////////////// --\u003e\n\n## Deployment (Render)\n\nProject is linked to [Render](https://render.com/) for deployment.\n\n\u003e It will automatically deploy the project to Render on every push.\n\n\u003cbr\u003e\n\u003c!-- REFERENCES ////////////////////////////////////////////////////////// --\u003e\n\n## References\n\n-   [Node.js](https://nodejs.dev/)\n-   [Vite](https://vitejs.dev/)\n-   [Vue.js](https://vuejs.org/)\n-   [Bootstrap](https://getbootstrap.com)\n-   [Express](https://expressjs.com/)\n-   [WebSocket (WS)](https://github.com/websockets/ws)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebceyhan%2Fmultiplay-snake-game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebceyhan%2Fmultiplay-snake-game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebceyhan%2Fmultiplay-snake-game/lists"}