Back to Projects
Personal Project

Pulse - Real time Chatting App

ReactTypeScriptExpressJSSocketIOMongoDBTailwind CSSCloudinary
Pulse - Real time Chatting App

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

Homepage

Clean and responsive landing page with user-friendly navigation

Chat Interface

Chat Interface

Real-time chat interface with message history

Profile Management

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