- Name: Antriksh Dangi
- College: IIT Dhanbad
- Department: B.Tech (Mechanical Engineering)
https://github.com/antriksh-9/Ginger_chat-app/blob/master/System%20Design%20doc.pdf
Ginger is a messaging service prototype It uses Socket.io for real time communication and stores user details in encrypted format in Mongo DB Database.
Client: React JS with Chakra UI Library
Server: Node JS, Express JS
Database: Mongo DB
- Clean and Intuitive user Interface
- User Registration and Authentication
- Real Time Chatting with Typing indicators
- Sending and receiving text messages between users
- One to One chat
- Search Users
- Create Group Chats
- Real-time message updates
- Notifications
- Add or Remove users from group
- View Other user Profile
- Login Password Encryption
- Chat history is saved
- Responsive web app
- AI powered chatbot for user.
To run this project, you will need to add the following environment variables to your .env file
PORT
MONGO_URI
: This can be generated from your MongoDB project profile.
JWT_SECRET
: You can name it whatever you want
NODE_ENV
: production
Clone the project
git clone https://github.com/antriksh-9/Ginger_chat-app
Go to the project directory
cd Ginger_chat-app
Install dependencies
For backend:
npm install
For frontend:
cd frontend/
npm install
Start the server
npm start
Start the client
cd frontend/
npm start
https://ginger-app.onrender.com/
Chakra UI is a popular and highly regarded React UI library known for its accessibility, ease of use, and customization options. Chakra UI provides a set of predefined styles and components.
I have used Socket.io for real-time communication in web applications, enabling instant updates and interactions between clients and the server.
I have used JWT (JSON Web Tokens) for secure user authentication and authorization, while bcrypt.js is used to securely hash and store user passwords in databases.