{"id":25430425,"url":"https://github.com/mkornajcik/socket-chat","last_synced_at":"2026-04-12T06:34:29.499Z","repository":{"id":276959312,"uuid":"930857015","full_name":"mkornajcik/socket-chat","owner":"mkornajcik","description":"A real-time chat application built with Node.js, Express, and Socket.io.","archived":false,"fork":false,"pushed_at":"2025-02-13T17:22:03.000Z","size":87,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-29T03:11:08.033Z","etag":null,"topics":["chat-application","express","javascript","nodejs","socket-io","websockets"],"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/mkornajcik.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":"2025-02-11T10:24:01.000Z","updated_at":"2025-06-24T11:02:44.000Z","dependencies_parsed_at":"2025-08-28T23:39:33.087Z","dependency_job_id":"a61f645b-854a-498c-b6b1-da8f3f629f78","html_url":"https://github.com/mkornajcik/socket-chat","commit_stats":null,"previous_names":["mkornajcik/socket-chat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mkornajcik/socket-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkornajcik%2Fsocket-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkornajcik%2Fsocket-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkornajcik%2Fsocket-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkornajcik%2Fsocket-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkornajcik","download_url":"https://codeload.github.com/mkornajcik/socket-chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkornajcik%2Fsocket-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31706765,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["chat-application","express","javascript","nodejs","socket-io","websockets"],"created_at":"2025-02-17T03:28:17.907Z","updated_at":"2026-04-12T06:34:29.482Z","avatar_url":"https://github.com/mkornajcik.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Real-Time Chat Application 🚀\n\nA real-time chat application built with Node.js, Express, and Socket.io. Supports public/private rooms, file sharing, user lists, room lists and more!\n\n## Features ✨\n- **Real-time messaging** with Socket.io\n- **Public \u0026 Private Chat Rooms**\n- **File Sharing** (max 5MB per file)\n- User list with color-coded identities\n- Room list with participant counts\n- Typing indicators \n- XSS protection with HTML sanitization\n- Rate limiting (1000 requests/10min)\n- Responsive UI with custom alerts\n\n## Tech Stack 🔧\n- **Backend**: Node.js, Express\n- **Real-Time**: Socket.io\n- **Security**: Helmet, rate limiting, CSP\n- **Storage**: Multer for file uploads\n- **Utilities**: Sanitize-html, compression\n\n## Preview 🪟\nhttps://github.com/user-attachments/assets/1d8e1d1c-a117-4d90-9493-31e89347baf0\n\n## Installation ⚙️\n1. Clone the repo:\n   ```bash\n   git clone https://github.com/mkornajcik/socket-chat.git\n   ```\n2. Install dependencies:\n   ```bash\n   npm install express socket.io multer helmet sanitize-html dotenv compression\n   ```\n3. Create .env file:\n   ```bash\n   PORT=3000\n   ```\n4. Start the server:\n   ```bash\n   node index.js\n   ```\n\n## Configuration 🔒\n- **Security Headers**: Custom CSP in index.js\n- **File Uploads**: Max size: 5MB, Allowed types: Any (configurable in routes.js)\n- **Rate Limiting**:\n```bash\nwindowMs: 10 * 60 * 1000, // 10 minutes\nmax: 1000 // 1000 requests\n```\n\n## Usage 💬\n1. Access http://localhost:3000\n2. Enter username when prompted\n3. Choose to: Join public room, Start private chat by clicking users, Share files via upload button\n\n## Security 🛡️\n- Content Security Policy (CSP) configured\n- HTML input sanitization\n- Rate limiting\n- File size restrictions\n- Secure headers via Helmet\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkornajcik%2Fsocket-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkornajcik%2Fsocket-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkornajcik%2Fsocket-chat/lists"}