plh97/chatroom

avatarplhDigital nomad

Chatroom · Github Action Status Github Action Status Netlify Status

Architecture

  • Development(lerna)
    • datebase
      • mongodb
    • ansible
    • terraform
    • nignx gateway
    • package
      • frontend
        • vite[unplugin-auto-import/vite]
        • eslint+prettier
        • react+hook+ts+redux
        • @chakra-ui/react
        • tailwind
        • socket-io/client
        • Netlify
      • backend
        • node+ts
        • socket.io
        • Koa
        • cors
        • koa-router
        • koa-static
        • AWS

Dev

yarn
npm install
yarn run dev

Deploy

  • terraoform create a Vultr EC2 service
  • ansible create vm environment
  • ansible clone project
  • install dependences
  • build project
  • deploy project inside docker

CICD

cd ansilbe
ansible-playbook cicd.yml

TODO

  • test coverage reach 100%
  • room name able to setup/change
  • room role: administer, menber, manager, room member
  • room icon
  • room online people display status
  • one account can only login for one user
  • webRTC - may need learn the course
  • add a vitural scroll container
  • BUG: when join default room, chatroom do 2 times ws push, need to be fixed!