CONNECT - Say It with Connect is a robust online messenger application designed to enhance communication among users via their Gmail accounts. The application leverages a variety of modern web technologies to provide a seamless, secure, and intuitive messaging experience. Below is a detailed description of the application's features, functionalities, and the technologies that power it.
Backend - https://github.com/GayalMelappilly/Connect-app-backend.git
Frontend - https://github.com/GayalMelappilly/Connect-app-frontend.git
Real-time Messaging:
Users can engage in instant messaging with their friends.
Messages are delivered in real-time using Socket.IO, ensuring swift and reliable communication.
User Online Indicator:
The application displays the online status of users.
Users can see which of their friends are currently online and available to chat.
Friend Requests:
Users can send and receive friend requests to connect with new friends.
The application manages friend requests and ensures a smooth process for accepting or rejecting them.
Invite User via Gmail:
Users can invite others to join the platform through Gmail.
Invitations are sent using Nodemailer, integrating seamlessly with Gmail.
Google Authentication:
Secure login and authentication are handled using Google OAuth.
Users can log in with their existing Gmail accounts, providing a secure and familiar authentication process.
Dark/Light Mode:
Users can switch between dark and light themes according to their preference.
The user interface adapts to provide a comfortable viewing experience in different lighting conditions.
Backend Technologies:
MongoDB: Used as the database to store user information, messages, and friend relationships.
Express.js: Serves as the web application framework for building the server and RESTful APIs.
Node.js: Provides the runtime environment for the server-side code, enabling efficient and scalable server operations.
Frontend Technologies:
React.js: A powerful library for building the user interface, ensuring a dynamic and responsive experience.
Tailwind CSS: A utility-first CSS framework that allows for rapid and efficient styling of the application.
Daisy UI: A set of components built on Tailwind CSS, used to create consistent and attractive UI elements.
Axios: A promise-based HTTP client used for making API requests from the frontend to the backend.
Authentication and Real-time Communication:
Google OAuth: Provides secure user authentication through Google accounts.
Passport.js: Middleware for handling authentication strategies, integrating Google OAuth for user login.
Socket.IO: Enables real-time, bidirectional communication between the client and server, crucial for the messaging functionality.
Email Integration:
Nodemailer: Used for sending emails, such as invitation emails through Gmail, ensuring smooth integration with Google services.
User Authentication:
Implemented using Google OAuth and Passport.js, ensuring secure login with Gmail.
Authentication tokens are managed to maintain user sessions.
Database Management:
MongoDB is used to store user profiles, messages, and friend connections.
Schemas are designed to efficiently manage relationships and data retrieval.
Real-time Messaging:
Socket.IO is employed to handle real-time communication.
Events are managed for sending, receiving, and displaying messages instantly.
User Interface:
React.js provides a responsive and dynamic user experience.
Tailwind CSS and Daisy UI are used to create a visually appealing and user-friendly interface.
Dark/Light mode toggling is implemented to cater to user preferences.
Email Invitations:
Nodemailer is configured to send invitation emails via Gmail.
Integration ensures that users can easily invite their contacts to join the platform.
"CONNECT - Say It with Connect" is a comprehensive online messaging application that offers a variety of features to enhance user communication. By leveraging cutting-edge technologies and best practices, it provides a secure, efficient, and enjoyable user experience. Whether it’s for personal or professional use, this application facilitates seamless and real-time communication among users, making it an essential tool in today's connected world.