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.