{"id":13672944,"url":"https://github.com/plh97/chatroom","last_synced_at":"2025-03-17T04:03:44.755Z","repository":{"id":38989447,"uuid":"105540689","full_name":"plh97/chatroom","owner":"plh97","description":"💬chat","archived":false,"fork":false,"pushed_at":"2024-09-08T11:02:16.000Z","size":71691,"stargazers_count":57,"open_issues_count":2,"forks_count":11,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2025-02-25T05:04:49.489Z","etag":null,"topics":["ansible-playbook","chat","docker","github","koa","mongodb","nodejs","react","terraform"],"latest_commit_sha":null,"homepage":"https://chat.plhh.xyz","language":"TypeScript","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/plh97.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-02T13:57:55.000Z","updated_at":"2024-09-08T11:02:20.000Z","dependencies_parsed_at":"2023-02-19T00:46:07.120Z","dependency_job_id":"7b22ac25-6090-4094-830a-ce86e18e241d","html_url":"https://github.com/plh97/chatroom","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plh97%2Fchatroom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plh97%2Fchatroom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plh97%2Fchatroom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plh97%2Fchatroom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plh97","download_url":"https://codeload.github.com/plh97/chatroom/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241787483,"owners_count":20020101,"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":["ansible-playbook","chat","docker","github","koa","mongodb","nodejs","react","terraform"],"created_at":"2024-08-02T09:01:59.463Z","updated_at":"2025-03-04T06:03:26.614Z","avatar_url":"https://github.com/plh97.png","language":"TypeScript","readme":"# [Chatroom](http://plhh.xyz/) \u0026middot; [![Github Action Status](https://github.com/plh2/chatroom/actions/workflows/github-CICD-actions.yml/badge.svg)](https://github.com/plh2/chatroom/actions) [![Github Action Status](https://github.com/plh2/chatroom/actions/workflows/main.yml/badge.svg)](https://github.com/plh2/chatroom/actions) [![Netlify Status](https://api.netlify.com/api/v1/badges/12d2c466-96f3-49a6-91f1-af835e81396a/deploy-status)](https://app.netlify.com/sites/plh-chat/deploys)\n\n\n\n## Architecture\n\n- Development(lerna)\n  - datebase\n    - mongodb\n  - ansible\n  - terraform\n  - nignx gateway\n  - package\n    - frontend\n      - vite[unplugin-auto-import/vite]\n      - eslint+prettier\n      - react+hook+ts+redux\n      - @chakra-ui/react\n      - tailwind\n      - socket-io/client\n      - Netlify\n    - backend\n      - node+ts\n      - socket.io\n      - Koa\n      - cors\n      - koa-router\n      - koa-static\n      - AWS\n\n## Dev\n\n```bash\nyarn\nnpm install\nyarn run dev\n```\n\n## Deploy\n\n- terraoform create a Vultr EC2 service\n- ansible create vm environment\n- ansible clone project\n- install dependences\n- build project\n- deploy project inside docker\n\n## CICD\n\n```bash\ncd ansilbe\nansible-playbook cicd.yml\n```\n\n## TODO\n\n- [ ] test coverage reach 100%\n- [ ] room name able to setup/change\n- [ ] room role: administer, menber, manager, room member\n- [ ] room icon\n- [ ] room online people display status\n- [ ] one account can only login for one user\n- [ ] webRTC - may need learn the course\n- [ ] add a vitural scroll container\n- [ ] BUG: when join default room, chatroom do 2 times ws push, need to be fixed!\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplh97%2Fchatroom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplh97%2Fchatroom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplh97%2Fchatroom/lists"}