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.
- 💬 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.
- Frontend: Next.js
- Backend: Node.js, Express.js
- Real-Time Communication: Socket.io
- Database: PostgreSQL
Follow these steps to get the project running locally:
-
Create OAuth Keys:
- Set up OAuth secret keys for Google and GitHub.
-
Set Up PostgreSQL Database:
- Ensure a PostgreSQL database is available and configured.
-
Clone the Repository:
git clone <your-repository-url>
-
Navigate to the Project Directory:
cd ./chatopia
-
Install Dependencies:
npm install
-
Set Environment Variables:
- Add an
.env
file in the/chatopia
directory, following the structure outlined in.env.example
.
- Add an
-
Run the Development Server:
npm run server
- 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.
Contributions are welcome! If you have suggestions or ideas, feel free to fork the repository, open an issue, or submit a pull request.
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:
- ⭐ Star the repository to show your support.
- 📝 Create an issue outlining how you'd like to contribute to the project.
- 🍴 Fork the repository to make your own copy:
# Click on the "Fork" button at the top right of the repository page
- 💻 Implement your changes in the forked repository by creating a new branch for your feature or fix:
git checkout -b feature-or-fix-name
- Make your changes and commit them using Conventional Commits:
git commit -m "feat: describe your changes"
- 🔄 Push your branch:
git push origin feature-or-fix-name
- Open a pull request and describe the changes you made, mentioning the issue number you're addressing.
- ⏳ Wait for review and feedback from the maintainers.