Skip to content

Blink-drift/Chatopia

This branch is 4 commits behind lugnitdgp/Chatopia_GSOC_Heat_24:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8434c68 Β· Oct 26, 2024

History

22 Commits
Oct 26, 2024
Sep 28, 2024
Sep 28, 2024
Oct 19, 2024

Repository files navigation

πŸ“± Chatopia - WhatsApp Web Clone

Project Overview

Chatopia is a full-featured WhatsApp Web clone built using modern and efficient technologies. It offers real-time communication, group interactions, file sharing, and several other features, making it a powerful messaging platform.

This project leverages the following technologies:

  • ⚑ Next.js – A scalable and efficient frontend framework for delivering fast user experiences.
  • 🟒 Node.js + Express – A reliable backend stack for handling requests and ensuring smooth server-side operations.
  • 🌐 Socket.io – Enables real-time WebSocket communication for seamless, instant messaging.

✨ Key Features

  • πŸ’¬ Seamless Messaging – Real-time communication powered by WebSocket technology for fast and reliable messaging.
  • πŸ“ File Sharing – Share files, images, and media with ease within chats.
  • πŸ‘₯ Group & Community Creation – Create and manage group chats or communities for collaborative conversations.
  • 🏷️ User Tagging – Mention users directly in group conversations to get their attention.
  • πŸ”„ Message Forwarding – Forward messages across chats effortlessly.
  • πŸ˜„ Emoji/GIF Support – Express yourself with emojis and GIFs in your messages.
  • πŸ›‘οΈ Secure Authentication – OAuth-based login with Google and GitHub for secure user access.
  • πŸ–ΌοΈ Status Updates – Post and view status updates from other users in the social tab.
  • 🎨 Profile Customization – Personalize your profile with editable details.
  • πŸ”§ Privacy Settings – Take control of your privacy by setting preferences for who can see your data and activities.
  • πŸ”” Self-Notifications – Receive notifications for your own actions.
  • πŸ”‰ Notification Sound – Get sound alerts when new messages arrive, ensuring you never miss an update.

Tech Stack

  • Frontend: Next.js
  • Backend: Node.js, Express.js
  • Real-Time Communication: Socket.io
  • Database: PostgreSQL

πŸ› οΈ Installation & Setup

Follow these steps to get the project running locally:

  1. Create OAuth Keys:

    • Set up OAuth secret keys for Google and GitHub.
  2. Set Up PostgreSQL Database:

    • Ensure a PostgreSQL database is available and configured.
  3. Clone the Repository:

    git clone <your-repository-url>
  4. Navigate to the Project Directory:

    cd ./chatopia
  5. Install Dependencies:

    npm install
  6. Set Environment Variables:

    • Add an .env file in the /chatopia directory, following the structure outlined in .env.example.
  7. Run the Development Server:

    npm run server

πŸš€ Future Enhancements

  • Voice & Video Calls – Enable voice and video communication for users.
  • Dark Mode – Add a dark theme option for users who prefer it.
  • Advanced Search – Improve search functionality for finding messages, files, and users.

🀝 Contributing

Contributions are welcome! If you have suggestions or ideas, feel free to fork the repository, open an issue, or submit a pull request.

🀝How to make Contribution

We welcome contributions from developers of all skill levels! Whether you're fixing a bug, adding new features, or improving documentation, your help is appreciated.

To contribute:

  1. ⭐ Star the repository to show your support.
  2. πŸ“ Create an issue outlining how you'd like to contribute to the project.
  3. 🍴 Fork the repository to make your own copy:
    # Click on the "Fork" button at the top right of the repository page
  4. πŸ’» Implement your changes in the forked repository by creating a new branch for your feature or fix:
    git checkout -b feature-or-fix-name
    
  5. Make your changes and commit them using Conventional Commits:
    git commit -m "feat: describe your changes"
    
  6. πŸ”„ Push your branch:
    git push origin feature-or-fix-name
    
  7. Open a pull request and describe the changes you made, mentioning the issue number you're addressing.
  8. ⏳ Wait for review and feedback from the maintainers.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 75.5%
  • CSS 21.5%
  • JavaScript 2.9%
  • Dockerfile 0.1%