Dynamic Chat App (Website)

Description

Dynamic Chat App is a real-time communication application built using WebSocket technology. It enables users to chat with peers individually, create group chats, and manage groups seamlessly. This application also incorporates user authentication functionalities such as login and logout, along with features like online/offline status tracking for peers.

Technologies Used

  • HTML
  • CSS
  • JavaScript
  • Socket.io
  • EJS
  • Node.js
  • Express.js
  • MongoDB
  • Bootstrap
  • jQuery

Features

User Registration: Users can register in the application to start using the chat functionalities.

Login and Logout: Secure user authentication mechanism with login and logout functionalities.

Group Creation: Users can create groups to organize their conversations.

Group Invitation: Invites you friend by just share group link.

Group Chat: Real-time group chat feature for effective communication within groups.

Direct Messaging: Ability to send direct messages to individual peers.

Online/Offline Status: Displaying the online/offline status of peers for better interaction.

Setup Instructions

  1. Clone the repository to your local machine.
git clone https://github.com/amitamrutiya2210/Dynamic-Chat-App.git
  1. Navigate to the project directory.
cd Dynamic-Chat-App
  1. Copy the sample environment variables file and rename it to .env
cp sample.env .env
  1. Edit the .env file and fill in the required values for environment variables such as database connection URI, session secret, etc.

  2. Install dependencies using npm.

npm install
  1. Start the server.
npm run dev
  1. Access the application through your web browser at http://localhost:3000.

Usage

  • Register an account to get started.
  • Log in with your credentials.
  • Create groups or join existing ones.
  • Start chatting with peers either in groups or through direct messages.
  • Log out when done.

Contributing

We welcome contributions from the community. This project is still in a very initial level, so let's work together to make it bigger. Feel free to make any additional adjustments or customize it further to better suit your project's specific details and style.