{"id":17017980,"url":"https://github.com/vijethph/socketchat","last_synced_at":"2026-04-10T04:36:07.757Z","repository":{"id":135323020,"uuid":"233005985","full_name":"vijethph/SocketChat","owner":"vijethph","description":"A Web Chat Application based on Express and SocketIO Frameworks.","archived":false,"fork":false,"pushed_at":"2023-01-17T14:58:41.000Z","size":3426,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-27T16:46:53.349Z","etag":null,"topics":["expressjs","html-css","ioredis","nodejs","redis","socket-io","typescript"],"latest_commit_sha":null,"homepage":"https://socketchat-app.onrender.com","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vijethph.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-10T08:54:08.000Z","updated_at":"2023-03-07T05:40:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"00ff375a-0539-45bb-99ec-eb9d8a873d08","html_url":"https://github.com/vijethph/SocketChat","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/vijethph%2FSocketChat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijethph%2FSocketChat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijethph%2FSocketChat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijethph%2FSocketChat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vijethph","download_url":"https://codeload.github.com/vijethph/SocketChat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244982043,"owners_count":20542300,"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":["expressjs","html-css","ioredis","nodejs","redis","socket-io","typescript"],"created_at":"2024-10-14T06:44:11.781Z","updated_at":"2025-12-30T19:04:43.207Z","avatar_url":"https://github.com/vijethph.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\r\n \u003cimg width=100px height=100px src=\"public/img/icon.png\" alt=\"SocketIO Chat\"\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n\u003ch2 align=\"center\"\u003eSocket Chat\u003c/h2\u003e\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n\r\n  [![Status](https://img.shields.io/badge/status-active-success.svg)]()\r\n  [![GitHub issues](https://img.shields.io/github/issues/vijethph/SocketChat)](https://github.com/vijethph/SocketChat/issues)\r\n  [![GitHub forks](https://img.shields.io/github/forks/vijethph/SocketChat)](https://github.com/vijethph/SocketChat/network)\r\n  [![GitHub stars](https://img.shields.io/github/stars/vijethph/SocketChat)](https://github.com/vijethph/SocketChat/stargazers)\r\n  [![GitHub Pull Requests](https://img.shields.io/github/issues-pr/vijethph/SocketChat)](https://github.com/vijethph/SocketChat/pulls)\r\n  [![GitHub license](https://img.shields.io/github/license/vijethph/SocketChat)](https://github.com/vijethph/SocketChat/blob/master/LICENSE)\r\n  [![Docker Builds](https://img.shields.io/badge/docker%20build-passing-brightgreen?style=flat-square\u0026logo=docker\u0026labelColor=blue\u0026logoColor=white)](https://hub.docker.com/r/vijethph/socketchat)\r\n  [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/vijethph/SocketChat)\r\n  [![Made with TypeScript](https://img.shields.io/badge/made%20with-typescript-blue?style=flat-square\u0026logo=typescript\u0026labelColor=023047)](https://www.typescriptlang.org/)\r\n\u003c/div\u003e\r\n\r\n---\r\n\r\n\u003cp align=\"center\"\u003e A SocketIO based online chat application which can be deployed and run via Docker and Localtunnel\r\n    \u003cbr\u003e Made with TypeScript, ExpressJS, ioredis and Bootstrap\r\n\u003c/p\u003e\r\n\r\n## 📋 Table of Contents\r\n- [Screenshots](#screenshots)\r\n- [About](#about)\r\n- [Getting Started](#getting_started)\r\n- [Deployment](#deployment)\r\n- [Usage](#usage)\r\n- [Built Using](#built_using)\r\n- [Authors](#authors)\r\n- [Acknowledgments](#acknowledgement)\r\n\r\n## 📸 Screenshots \u003ca name=\"screenshots\"\u003e\u003c/a\u003e\r\n|    Login Page   |    New User Entry     |  Chat Screen   |           \r\n| :---------: | :-----------: | :-----------: |      \r\n| \u003cimg src=\"public/img/loginscreen.png\" alt=\"Login Page\" height=\"400\" /\u003e | \u003cimg src=\"public/img/newuserentry.png\" alt=\"New User Entry\" height=\"400\" /\u003e | \u003cimg src=\"public/img/chatcontinue.png\" alt=\"Chat Screen\" height=\"400\" /\u003e |     \r\n| Login Page | Notification to existing users on new user join | Chat Screen in a room |            \r\n\r\n|    Sending Location   |    Location Details     |             \r\n| :---------: | :-----------: |    \r\n| \u003cimg src=\"public/img/sendinglocation.png\" alt=\"Sending Location\" height=\"400\" /\u003e | \u003cimg src=\"public/img/locationdetails.png\" alt=\"Location Details\" height=\"400\" /\u003e |    \r\n| Location Details sent as a modal link | Location Map displayed in a modal |       \r\n\r\n\r\n## ℹ️ About \u003ca name = \"about\"\u003e\u003c/a\u003e\r\nThis is a chat application that can be used to connect online with friends by hosting one server at any particular point. It uses Express and SocketIO frameworks to establish and maintain the connection, and Redis to broadcast events to a subset of clients (users in a room).\r\n\r\nUsers can pick a room and join the chat and send messages which can be read by others. They can also send their location co-ordinates to others, which is displayed in a map under a modal.\r\n\r\n## ⚙️ Getting Started \u003ca name = \"getting_started\"\u003e\u003c/a\u003e\r\nFollow these instructions in order to get a copy of the project up and running on your local machine for development and testing purposes. See [deployment](#deployment) for notes on how to deploy the project on as a live server.\r\n\r\n### 💾 Prerequisites\r\nnode.js\u003e=16 and npm\u003e=7 are required.\r\n\r\nAfter installing, check their versions using these commands\r\n\r\n```\r\nnode -v\r\nnpm -v\r\n```\r\n\r\n### 💻 Installing \u003ca name=\"installing\"\u003e\u003c/a\u003e\r\nClone this project and open this project in terminal.\r\n\r\nInstall Dependencies.\r\n\r\n```bash\r\nnpm install\r\n```\r\n\r\nPull Redis image from DockerHub and run it in background.   \r\n\r\n```bash\r\ndocker pull redis:6.2\r\ndocker run --name redis-cache -p 6379:6379 -d redis:6.2\r\n```\r\n\r\nCreate a `.env` file in the project folder and add the following entry:\r\n\r\n```env\r\nREDIS_URL=\"redis://localhost:6379\"\r\n```\r\n\r\nFinally, run the project using following command and check the output at http://localhost:3000 in your browser.\r\n\r\n```bash\r\nnpm start\r\n```\r\n\r\nThe following output will be shown in the terminal after running above command.\r\n\r\n```bash\r\nlistening on PORT:3000\r\n```\r\n\r\nAnother way to install this app is to use Docker Compose. Run this command to start the app:\r\n```\r\ndocker-compose up\r\n```\r\nThis will run the app at http://localhost:3000, which can be seen in your browser.\r\n\r\n\u003c!--## 🔧 Running the tests \u003ca name = \"tests\"\u003e\u003c/a\u003e\r\nExplain how to run the automated tests for this system.\r\n\r\n### Break down into end to end tests\r\nExplain what these tests test and why\r\n\r\n```\r\nGive an example\r\n```\r\n\r\n### And coding style tests\r\nExplain what these tests test and why\r\n\r\n```\r\nGive an example\r\n```\r\n--\u003e\r\n\r\n## 🌐 Usage \u003ca name=\"usage\"\u003e\u003c/a\u003e\r\nThis application can be used by others if it is deployed using the steps in [deployment](#deployment). For usage by a single user, the above [installation](#installing) steps are sufficient.\r\n\r\n## 🚀 Deployment \u003ca name = \"deployment\"\u003e\u003c/a\u003e\r\nAfter starting the server, open another terminal, connect to the internet and type the following\r\n\r\n```\r\nnpm install -g localtunnel\r\nlt --port 3000\r\n```\r\nNow the project is deployed. It will show an output giving a website address like this:\r\n```\r\ndeployed at xyz@site.com\r\n```\r\nAsk your friends to open up the specified url and start chatting.\r\n\r\n## ⛏️ Built Using \u003ca name = \"built_using\"\u003e\u003c/a\u003e\r\n- [Express](https://expressjs.com/) - Server Framework\r\n- [SocketIO](https://socketio.com/) - Connection Framework\r\n- [NodeJS](https://nodejs.org/en/) - Server Environment\r\n- [TypeScript](https://www.typescriptlang.org/) - Programming Language\r\n- [Redis](https://redis.io/) - Messaging Cache\r\n- [Docker](https://docs.docker.com/get-started/overview/) - Build Framework\r\n\r\n## ✍️ Authors \u003ca name = \"authors\"\u003e\u003c/a\u003e\r\n- [@vijethph](https://github.com/vijeth) - Idea \u0026 Development\r\n\r\n## 🎉 Acknowledgements \u003ca name = \"acknowledgement\"\u003e\u003c/a\u003e\r\n- Thanks to CPMA Session conducted by ATS Learning Solutions\r\n- Inspiration: Project Ideas for Javascript\r\n- References: All Youtube Channels for using SocketIO.\r\n- [Brad Traversy](https://github.com/bradtraversy)\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvijethph%2Fsocketchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvijethph%2Fsocketchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvijethph%2Fsocketchat/lists"}