Personal Project
Pulse - Real time Chatting App
ReactTypeScriptExpressJSSocketIOMongoDBTailwind CSSCloudinary

Overview
Built with React, TypeScript, Node.js, Express, and Socket.IO. Features include user authentication, real-time messaging, and group management.
Key Features
- User Authentication (JWT-based)
- Real-time Messaging with Socket.IO
- Group Management
- Message History and Search
- Responsive Design with Tailwind CSS
- Protected Routes in React with role-based access
Architecture & Decisions
- ExpressJS for BackendChose ExpressJS for its simplicity and flexibility in building RESTful APIs, allowing for rapid development of the backend services. Easy to integrate with SocketIO server
- MongoDB for DatabaseMessages and chat (group) data is unstructured so NoSQL database like MongoDB was chosen for its flexibility in handling unstructured data, allowing for efficient storage and retrieval of chat messages and user profiles. and some redudantant data is stored for better user experience
- Same schema for personal and group chatsUsed the same schema for both personal and group chats to simplify the data model and reduce complexity in handling different chat types. This allows for easier management of chat messages and user interactions.
Project Timeline
Day 1
Requirement Identification
Day 1
Planning
Day 2-3
Design & Prototyping
Week 1
Backend Development
Week 2
Frontend Development
Week 2
Testing & Deployment
Gallery

Homepage
Clean and responsive landing page with user-friendly navigation

Chat Interface
Real-time chat interface with message history

Profile Management
User profile management with settings and preferences
Reference Resources
video
Tutorial (Inspiration)
Building a real-time chat application with React, Node.js, and Socket.IO