Skip to content

EchoChat is a versatile chatting platform designed to make your online interactions both engaging and effortless. Whether you're sending text messages, sharing videos, or participating in live video chats, EchoChat ensures you stay connected with your friends, family, and colleagues in a seamless and creative way.

Notifications You must be signed in to change notification settings

hv789/chatApp-IMBY-SE

Repository files navigation

EchoChat

EchoChat

Status GitHub Pull Requests



Welcome to EchoChat, where meaningful conversations come to life!


🎥 Video

Watch the videohttps://youtu.be/n9FDwmbuPME

📝 Table of Contents

🧐 About

EchoChat is a versatile chatting platform designed to make your online interactions both engaging and effortless. Whether you're sending text messages, sharing videos, or participating in live video chats, EchoChat ensures you stay connected with your friends, family, and colleagues in a seamless and creative way.

📄 System Design Document

Check out the System Design Document present in the repo...☝️ Or check out here

🏁 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Installing

git clone https://github.com/hv789/chatApp-IMBY-SE.git
cd chatApp-IMBY-SE
npm i

🔧 Additional Steps

Create a .env.local file and paste the following into it.

.env.local file contents

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
CLERK_WEBHOOK_SECRET=
NEXT_PUBLIC_STREAM_KEY=
STREAM_SECRET=
NEXT_PUBLIC_WEB_PUSH_PUBLIC_KEY=
WEB_PUSH_PRIVATE_KEY=

Clerk configuration steps

  • Make an account in Clerk
  • Copy the NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY and paste in the .env.local file.
  • Go into the Webhooks section and Add Endpoint URL.
<LINK>/api/clerk-webhook
  • Under the Message Filtering section check session.ended, session.removed, session.revoked.
  • Svix play option can be used to generate unique endpoint. Later it can be replaced with your hosted site's link

GetStream configuration steps

  • Make an account in GetStream
  • Make an organization.
  • Once in, copy the App access keys and paste them into .env.local file.
  • Under the Webhook events clear all events and then add message.new event.
  • Under the Chat Overview -> Before Message Hooks -> paste the below content
<LINK>/api/push-webhook
  • Replace with the Svix link generated previously.

Web-Push keys

  • Open a fresh terminal in chatApp-IMBY-SE directory and run below code
npx web-push generate-vapid-keys
  • Paste the generated public and private keys into the .env.local file.

And you are done...👍

⚓ Dependencies

🎈 Usage

  • The whole chat application is present in this directory.
  • The video chat application is hosted on videoChatApp-IMBY-SE

🚀 Deployment

Deployed on Vercel. Don't forget to add the environment variables.

⛏️ Built Using

📝 TODO

  • Add more real life features like -
    • Status
    • Stories
    • etc...
  • Adding more AI features.

✍️ Authors

🎉 Acknowledgements

  • Google 😄
  • ChatGPT 🤖
  • Inspiration from WhatsApp, Slack, etc...

About

EchoChat is a versatile chatting platform designed to make your online interactions both engaging and effortless. Whether you're sending text messages, sharing videos, or participating in live video chats, EchoChat ensures you stay connected with your friends, family, and colleagues in a seamless and creative way.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published