ChiChat is a real-time private chat application that enables secure communication between users. The application is built with a focus on simplicity, responsiveness, and real-time messaging using WebSocket technology.
-
User Authentication: The application includes a robust user authentication system. Users can sign up, log in, and securely manage their accounts.
-
Profile Editing: Users have the ability to edit their profiles, allowing them to customize their information and preferences.
-
Admin Panel: An admin panel is provided for administrators to manage users, ensuring a secure and controlled environment.
-
Real-time Messaging: ChiChat utilizes WebSocket technology, powered by Pusher, for real-time messaging. Users can send and receive messages instantly, providing a seamless chat experience.
-
Attachment Support: Users can share attachments along with their messages, enhancing communication by allowing the exchange of files, images, and more.
-
Buddy System: Users can create conversations with their buddies, facilitating private and focused discussions. The search buddy system allows users to find and connect with friends easily.
-
Responsive Design: The frontend is designed to be responsive, ensuring a consistent and user-friendly experience across various devices. Moment.js is used for displaying time in a human-readable format.
-
React.js: The frontend of ChiChat is built using React.js, providing a dynamic and interactive user interface.
-
HTML5, CSS, SCSS, Tailwind CSS: The application uses modern web technologies and styling approaches for a visually appealing and responsive design.
-
React Query: For efficient data fetching and management on the frontend.
-
Node.js and Express: The backend of ChiChat is built on Node.js and Express, providing a scalable and efficient server-side environment.
-
MongoDB and Mongoose: A MongoDB database is used to store user information and messages. Mongoose is employed for data modeling and interaction with the database.
-
Validation (Express Validator): Express Validator is used for server-side validation to ensure the integrity of user input.
-
WebSocket (using Pusher): Real-time communication is achieved through WebSocket technology, with Pusher facilitating seamless communication.
-
Data Upload (Express Multer): Express Multer is used for handling file uploads, supporting attachment functionality.