Skip to content

Swapn2003/Real-Time-Chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

Con-ik: Connect and Link

-- Real Time Chatting & more --

Con-ik is a real-time chatting website that allows users to connect and link with their contacts and groups. Built using the MERN stack (MongoDB, Express.js, React.js, Node.js) and Socket.IO, Con-ik offers a seamless chatting experience with emoji support, and image sharing features.

How to use?

Technologies Used:

  • MERN Stack:
    • MongoDB Atlas: A NoSQL database used for storing user information, contacts, groups, and messages.
    • Express.js: A web application framework for handling HTTP requests and routing.
    • React.js: A JavaScript library for building user interfaces.
    • Node.js: A JavaScript runtime environment used for server-side development.
  • Socket.IO: A library enabling real-time, bidirectional communication between web clients and servers.
  • Bcrypt: A password-hashing function used to securely store user passwords.
  • Cloudinary: An image and video hosting service for storing and managing images.
  • HTML, CSS, and JavaScript: Used for frontend development and styling.

Features:

  • User Registration:
    • Users can create an account by providing their email, a unique username and password.
    • Passwords are securely encrypted using bcrypt before storage.
    • Validation ensures the email and username is unique and adheres to the required format.
  • User Login:
    • Registered users can log in using their username and password.
    • Bcrypt is used to securely compare and authenticate user passwords.
  • Contact Management:
    • Users can add contacts by the names they wish(need not be unique) and contact id as usernames.
    • Validation of username ensures the contact exists and is not already added.
    • Contacts are saved in the database for future reference.
  • Group Creation:
    • Users can create groups by providing a name and selecting one group member initially and later adding other members.
    • The creator of the group is automatically added as a member.
    • Group details are stored in the database.
    • Group is saved in contact list of all the group members
  • Member Addition to Groups:
    • Group members can add members to their created groups.
    • Group membership details are updated in the database.
  • Real-Time Messaging:
    • Users can have real-time conversations with their contacts or group members.
    • Messages are instantly delivered and displayed to all participants.
    • Socket.IO facilitates real-time communication between the server and clients.
  • Emoji Support and Image Sharing:
    • Users can express emotions by sending emojis during conversations.
    • The website enables image sharing, allowing users to upload and share pictures in chats.
    • Images are stored securely using Cloudinary and MongoDB Atlas.

Run Locally

Clone the project

  git clone https://github.com/Swapn2003/Real-Time-Chat

Go to the project directory

  cd Real-Time-Chat

Install dependencies

 
  cd frontend/
  npm install
  cd..
  cd backend/
  npm install

Configure the MongoDB connection:

  • Create a MongoDB database and obtain the connection URI.
  • Replace the placeholder MongoDB URI in the server configuration file (backend/config/db.js) with your actual URI.

Start the server

  node index.js

Start the Client

  //open new terminal
  cd frontend
  npm run start

To Run on browser

Web Application Snippets

  1. Registration

Registration

  1. Login

Login-page

  1. Real Time Chat with Emoji

Chatting-room Chatting-room2

  1. Image share

Image Share

  1. Adding Contacts, Groups and Group Members addingContact addingContact

Made By

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors