/chat

💬 🐕 ‎ very chat. such messages. so talking. wow. React/Redux, TypeScript, Socket.io chat app.

Primary LanguageTypeScriptMIT LicenseMIT

Chat App

A chat application using React, Redux Toolkit, Socket.io, and Tailwind CSS.

Setup

Install dependencies

Install the dependencies for the client and server.

# in one terminal window
cd server && npm i
# in another terminal window
cd client && npm i

Start server

An Express server is maintaining a Socket.io connection, persisting data short-term in memory, and exposes an API for accessing persistent data.

# in /server
npm start

Server is running on localhost:5000.

Start client

A React server with Redux for the front end.

# in /client
npm start

Client dev server is running on localhost:3000.

You can view the app at localhost:3000. Log in with any valid email and username, and you'll enter into the chatroom, which will display all users (noting which are currently online) and all messages.

Production build

Run npm run build on client and server to compile to JavaScript.

Todos

  • Duplicate users should be checked and not allowed
  • Add user is typing
  • Allow tagging
  • Add settings
  • Add error handling
  • Add tests
    • Jest Unit tests
    • React Testing Library component tests
    • Cypress end-to-end tests
  • Add ESLint
  • Add Docker support