Chithi

Chithi is a modern social media application crafted to deliver a seamless and engaging user experience. It features a comprehensive set of functionalities, including authentication, chat, user profiles, posts, comments, reactions, notifications, and follower/block management.

Key Features

  • Authentication: Sign Up, Sign In, Log Out, Password Reset
  • Chat: Private Messages, Add Message Reactions, Send Images, Mark Messages as Read, Delete Messages, Search Users
  • Posts: Create Posts (with images), View All Posts, Update Posts, Edit Posts
  • Comments: Add and Delete Comments
  • Reactions: Add and Remove Post Reactions, Show All Post Reactions
  • Notifications: Notification Settings, Send Notifications, Mark Notifications as Read, Display All Notifications
  • User Management: Get User Profile, Infinite Scrolling for Users, Random Suggested Users, Edit Profile, Add Cover Page
  • Followers & Block: Follow/Unfollow Users, Show All Followers and Following Lists, Block/Unblock Users

Technology Stack

  • TypeScript, React 18, Sass, Axios
  • Vitest, React Testing Library, Redux Toolkit, MSW (API Mock)
  • Socket.IO, Node.js, Express.js, Mongoose, Redis, BullMQ, PM2, Cloudinary, MongoDB, Nodemailer, BREVO (SMTP)

Challenges Faced

  • Real-time Communication: Implementing Socket.IO for real-time chat and reactions while preventing memory leaks.
  • State Management: Maintaining consistent state across components and optimizing updates.
  • User Authentication: Securing sign-up, sign-in, and password reset processes, and managing sessions.
  • User Experience: Providing real-time notifications, efficient search functionality, and smooth interaction.
  • Testing and Debugging: Setting up and running automated tests, debugging issues in a real-time environment.