Skip to content

What's App style responsive real time chat app. Written in TypeScript using React, NestJS, typesafe-REST, and MongoDb

Notifications You must be signed in to change notification settings

floriantoenjes/real-time-react-chat-app

Repository files navigation

Florian's Chat (Real-Time Chat App - What's App style)

Demo

Feel free to sign up at chat.floriantoenjes.com with a made-up email and a password of choice for demo purposes.

Functionality

Right now users can...

  • register, log in, log out, passwords being hashed with Bcrypt.
  • add other users as contacts and write them messages.
  • create chat groups with multiple users and exchange messages.
  • clean up or delete chats.
  • receive messages and see if they have been read in real time.
  • edit their profiles, look at other user's profiles
  • send images

Technical Details

The backend...

  • is written in TypeScript making use of NestJS as a framework.
  • talks via mongoose to a MongoDb cluster for data persistence.
  • serves the frontend as well
  • makes its WebSocket connections scalable by using a Redis instance

The frontend...

  • is also written in TypeScript making use of React v18 as a framework.
  • uses the MUI material library components.
  • uses Tailwind CSS as a style library.
  • offers responsiveness to run on phone and web
  • is compiled with Vite for a fast development speed.

Backend and frontend...

  • are secured via JWTs
  • communicate via REST with typesafe communication via ts-rest, a tRPC like communications contract between frontend and backend.
  • are processing real time updates with WebSocket connections via socket.io server and client.

Next TODOs

  • Implement sending of audio files in chat
  • Implement Voice Calls
  • Check JWTs for expiration
  • Implement backend validation

About

What's App style responsive real time chat app. Written in TypeScript using React, NestJS, typesafe-REST, and MongoDb

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published