- Typescript
- Node
- React, using hooks
- Fetch API
- socket.io.client
- express.js
- socket.io
- enter chat with username
- username gets validated with connected participants, no duplicates allowed
- send and receive messages
- see archive messages
- keep information about Participants in memory
- keep information about Messages in memory
- responsive web app
- production-level error handling
- api client creation
- authorization
- tests - due to a thin business logic
cd ./client && npm i && npm run start
cd ./server && npm i && npm run start