This is a real-time chat application built with React and ExpressJS. Firebase is used for authentication and real-time database, and Cloudinary is used for storing user profile images. JWT is used for security and token verification.
- Real time chating.
- User registration and authentication with Firebase Google Authentication.
- Google cloud SQL storage for storing messages and user details
- Real-time messaging between registered users using Firebase Real-Time Database.
- Cloudinary image storage for user profile pictures.
- JWT-based security with Firebase token verification.
- React
- ExpressJS
- Firebase
- Cloudinary
- MySQL
The project is split into, the public
folder is the frontend of the application build using react and the server
folder is the backend of the application build using nodejs. See the respective folders for installation and local development informations.
- Register a new user account with a Google account using Firebase Google Authentication
- Login with the registered account
- Upload a profile picture or select an avatar from Multiavatar API
- Start chatting with other registered users in real-time
JWT-based security is provided throughout the application with Firebase token verification. Each user has a unique token that is generated by Firebase upon registration. This token is used to authenticate the user on each request made to the server. Any request that does not have a valid token is rejected by the server.
Google MySQL instance is used as the database for the chat application. The messages between the users are stored in Firebase Real-Time Database.
Cloudinary is used to store user profile pictures. Users can either upload their own pictures or select an avatar from Multiavatar API.