Skip to content

Baatchit is a modern real-time chat app designed for seamless and secure communication. Enjoy instant messaging, dynamic group chats, file sharing, typing indicators and more with Baatchit's robust feature set. Built with the latest tech, Baatchit ensures a smooth, user-friendly experience. Connect, chat, and share effortlessly with Baatchit!

Notifications You must be signed in to change notification settings

RishiBakshii/Baatchit-Modern-chat-application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Baatchit 🗨️

Launching Soon 🚀

Baatchit is a modern real-time chat application designed to facilitate seamless communication between users. With Baatchit, users can engage in conversations, share files, see when others are typing, and more, all in real-time.

Features ✨

  • 🔒 End-to-End Encryption: Ensure your private chats are secure with advanced encryption, protecting your messages from unauthorized access.
  • 🔑 Private Key Recovery: Recover your private encryption key securely through a password-protected and MFA email verification process, ensuring you never lose access to your encrypted messages.
  • 📲 Push Notifications: Stay updated with instant push notifications, ensuring you never miss a message even when the app is closed.
  • 💬 Real-time Messaging: Instantly send and receive messages with other users.
  • 🤝 Friends Feature: Connect with other users and engage in private chats or group conversations after adding them as friends.
  • 👥 Group Chats: Create and participate in group chats with multiple users.
  • 🟢 User Presence: See who's online and available for chat in real-time.
  • ⌨️ Typing Indicators: See when other users are typing to enhance communication flow.
  • ✔️ Message Seen Status: Know when your messages have been seen by other users.
  • ✏️ Edit Messages: Edit your messages in real-time, with updates reflected instantly for all users and an indication that the message has been edited.
  • 🗑️ Delete Message: Delete messages after sending them ensuring full control over your conversation
  • 📁 File Sharing: Share files and documents securely within chats.
  • 🎉 GIF Sending: Express yourself with animated GIFs using the integrated Tenor GIF library.
  • 📊 Polling: Send polls with either multiple votes set to true or false, allowing users to gather opinions and feedback.
  • 🔒 OAuth Integration: Sign in easily using social login options like GitHub and Google.

Technologies Used 🛠️

Frontend Technologies Used:

  • ⚛️ React: A JavaScript library for building user interfaces.
  • 🔗 React Router: Declarative routing for React applications.
  • 🛠️ Redux Toolkit: An opinionated, batteries-included toolset for efficient Redux development.
  • 🔄 Socket.IO Client: Real-time bidirectional event-based communication library for web applications.
  • 📑 React Hook Form: Performant, flexible and extensible forms with easy-to-use validation.
  • 📝 Zod: A TypeScript-first schema declaration and validation library.
  • 🎥 Framer Motion: A production-ready motion library for React.
  • 🎬 Lottie React: Render After Effects animations on React-based web apps.
  • 🖼️ Gif Picker React: Provides a simple and easy-to-use UI for selecting GIFs.
  • 🔔 React Hot Toast: Toast notifications for React applications.

Backend Technologies Used:

  • 🟢 Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine.
  • 🌐 Express: Fast, unopinionated, minimalist web framework for Node.js.
  • 🔄 Socket.IO: Real-time bidirectional event-based communication library for Node.js.
  • 📂 MongoDB (with Mongoose): A NoSQL database for storing application data.
  • 🔒 Bcryptjs: Library for hashing passwords.
  • ☁️ Cloudinary: Cloud-based image and video management service.
  • 🔓 Cors: Middleware for handling Cross-Origin Resource Sharing (CORS).
  • 🔧 Dotenv: Module to load environment variables from a .env file.
  • 🛡️ Helmet: Middleware to secure Express apps by setting various HTTP headers.
  • 🔐 Jsonwebtoken: Library to create and verify JSON Web Tokens (JWTs).
  • 📈 Morgan: HTTP request logger middleware for Node.js.
  • 📤 Multer: Middleware for handling multipart/form-data, primarily used for file uploads.
  • 📧 Nodemailer: Module for sending emails from Node.js applications.
  • 🔑 Passport: Authentication middleware for Node.js.
  • 🐙 Passport-Github2: Passport strategy for authenticating with GitHub using OAuth 2.0.
  • 🔍 Passport-Google-Oauth20: Passport strategy for authenticating with Google using OAuth 2.0.
  • 🔢 UUID: Library for generating universally unique identifiers (UUIDs).

Getting Started 🚀

To get started with Baatchit, follow these steps:

  1. Clone the repository: git clone https://github.com/RishiBakshii/Baatchit
  2. Navigate to the project directory: cd Baatchit
  3. Install dependencies: npm install
  4. Start the development server: npm run dev
  5. Visit http://localhost:5173 in your browser to access the application.

Setting Up Environment Variables 🌐

Both the frontend and backend have a .env.example file provided. Follow these steps to set up the environment variables:

  1. Copy the provided .env.example file to create your own .env file:
  2. Open the .env file and replace the placeholder values with your actual credentials and secrets.

This ensures that both the frontend and backend applications have the necessary configurations for seamless operation.

Contributing 🤝

Contributions are welcome! If you'd like to contribute to Baatchit, please follow these steps:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature-name
  3. Make your changes and commit them: git commit -am 'Add new feature'
  4. Push to the branch: git push origin feature-name
  5. Submit a pull request.

Contact 📧

For any inquiries or feedback, please contact me at rishibakshiofficial@gmail.com.

About

Baatchit is a modern real-time chat app designed for seamless and secure communication. Enjoy instant messaging, dynamic group chats, file sharing, typing indicators and more with Baatchit's robust feature set. Built with the latest tech, Baatchit ensures a smooth, user-friendly experience. Connect, chat, and share effortlessly with Baatchit!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages