π€ TalkNLearn β Connect, Chat & Call! A Social Networking & Real-time Communication Platform Welcome to TalkNLearn, your new favorite platform to connect with people, forge new friendships, and engage in meaningful conversations! This full-stack MERN application is designed to showcase modern web development practices including robust authentication, real-time communication, and seamless user interaction.
π Check out the live project here: https://talknlearn-1.onrender.com
If Signup doesn't work, you can use these test login credentials: π§ Email: Tushar7531@gmail.com π Password: Tushar7531
With TalkNLearn, users can:
β Sign up and Log in (with secure JWT authentication via cookies) β Discover & Add Friends to expand their network π¬ Engage in Real-time Messaging with friends π Initiate Video Calls for face-to-face conversations π Manage their Profile and connections
π§± Tech Stack Frontend:
React.js: A declarative, component-based JavaScript library for building user interfaces. Tailwind CSS: A highly customizable, utility-first CSS framework for rapidly building custom designs. DaisyUI: A free, open-source Tailwind CSS component library for beautiful and responsive UI. TanStack Query (React Query): Powerful asynchronous state management for React, making data fetching, caching, and synchronization a breeze. React Router DOM: Declarative routing for React.js, enabling navigation between different application views. Backend:
Node.js: A JavaScript runtime for building scalable server-side applications. Express.js: A fast, unopinionated, minimalist web framework for Node.js. Bcrypt.js: A library to help you hash passwords. JSON Web Token (jsonwebtoken): For implementing secure authentication with JWTs. CORS (Cross-Origin Resource Sharing): Node.js middleware for providing a Connect/Express middleware that can be used to enable CORS with various options. Cookie-Parser: Parse Cookie header and populate req.cookies with an object keyed by the cookie names. GetStream.io: For robust and scalable chat and activity feed infrastructure, simplifying real-time communication. Database:
MongoDB: A NoSQL, document-oriented database for flexible data storage. Authentication:
JWT (JSON Web Tokens): Secure, stateless authentication mechanism (stored in HTTP-only cookies). π Features π Secure authentication with JWT (stored in HTTP-only cookies) π§βπ€βπ§ Friend Management: Send/accept friend requests, view friend lists. π¬ Real-time Chat: Instant messaging capabilities powered by Stream Chat. π Integrated Video Calling: Seamless video communication (potentially via WebRTC, simplified by Stream Calls or a similar service). π Intuitive and Responsive UI built with React, Tailwind CSS, and DaisyUI. π£οΈ Client-side Routing with React Router DOM for a smooth single-page application experience.
π οΈ Getting Started Locally Prerequisites Node.js & npm MongoDB instance (local or cloud like MongoDB Atlas) GetStream.io Account (for Chat & Calls API keys)
β¨ Future Improvements Role-based Access Control: Implement admin/moderator roles. Group Chats: Ability to create and manage group conversations. Presence Indicators: Show online/offline status of friends. File Sharing: Share images, videos, and documents in chat. Push Notifications: Notify users of new messages or friend requests. Rich Text Editor: Enhanced messaging with formatting options. Customizable Profiles: Allow users to personalize their profiles further.
πββοΈ Why I Built This TalkNLearn was created as a passion project to solidify my understanding of the MERN stack and to dive deep into real-time communication technologies. It showcases full CRUD operations, secure user authentication, and the integration of powerful third-party services like GetStream.io to build a truly interactive and engaging application. It's a testament to building functional and scalable applications from the ground up using modern web development workflows.
π¬ Contact Feel free to reach out for suggestions, collaborations, or just to say hello!
π§ Email: tusharwebdev007@gmail.com
π License This project is open-source and available under the MIT License.