{"id":19937068,"url":"https://github.com/hassanalgoz/socket.io-draw","last_synced_at":"2025-05-03T14:31:02.191Z","repository":{"id":98435408,"uuid":"138866751","full_name":"HassanAlgoz/socket.io-draw","owner":"HassanAlgoz","description":"Shared board for drawing with chat using the https://socket.io library","archived":false,"fork":false,"pushed_at":"2018-07-06T04:24:10.000Z","size":18,"stargazers_count":10,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T16:15:18.691Z","etag":null,"topics":["canvas","chat","drawing","html5-canvas","multiplayer-browser-game","nodejs","socket-io"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/HassanAlgoz.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":"2018-06-27T10:30:06.000Z","updated_at":"2025-03-24T07:30:59.000Z","dependencies_parsed_at":"2023-04-29T17:47:10.456Z","dependency_job_id":null,"html_url":"https://github.com/HassanAlgoz/socket.io-draw","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HassanAlgoz%2Fsocket.io-draw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HassanAlgoz%2Fsocket.io-draw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HassanAlgoz%2Fsocket.io-draw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HassanAlgoz%2Fsocket.io-draw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HassanAlgoz","download_url":"https://codeload.github.com/HassanAlgoz/socket.io-draw/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252203181,"owners_count":21710902,"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":["canvas","chat","drawing","html5-canvas","multiplayer-browser-game","nodejs","socket-io"],"created_at":"2024-11-12T23:30:43.453Z","updated_at":"2025-05-03T14:31:02.166Z","avatar_url":"https://github.com/HassanAlgoz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shared Boards\nAn online website of rooms/namespaces which users can join in to draw on shared boards while chatting.\n\n## Client-Server\nThe \"app\" uses [SOCKET.IO 2.x](https://socket.io/) library (which has a very good API and documentation) to allow users to communicate via a server which only broadcasts their messages to each other. Both the server (Node.js) and the client (Browser JS) are setup in this project. Just run `npm install \u0026\u0026 npm start` and you are good to go on [localhost:3000/lobby](localhost:3000/lobby).\n\n## Play\nOpen two browser tabs on [localhost:3000/lobby](localhost:3000/lobby) and join the same room. Now you have two connected clients.\n\n## Drawing Canvas\nThe drawing is done on an HTML5 canvas. Mouse events for drawing, and other events such as color change, and thickness change are communicated to other users connected to the same namespace (room) on that same server.\n\n## Chat\nA chat functionality is also implemented so that users can chat and draw at the same time.\n\n## Experimental\nThis is meant as an example and by no means is it production-ready. Feel free to experiment with it to learn the concepts and the API of the library used. I have written some comments here and there. But, I might have left few things out.\n\nIf you find this helpful please let me know that I made something useful. Thanks.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhassanalgoz%2Fsocket.io-draw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhassanalgoz%2Fsocket.io-draw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhassanalgoz%2Fsocket.io-draw/lists"}