A full-stack real-time chat app built with React, Node.js, and Socket.IO, offering smooth messaging, authentication, and a sleek, responsive interface.
- π¬ Real-time messaging powered by Socket.IO (supports private and group chats)
- π Secure authentication using JWT
- π Persistent chat history with MongoDB
- βοΈ Dynamic state management via Zustand
- π Optimized data fetching with React Query
- π« Interactive animations using Framer Motion
- π§ Form handling and validation using React Hook Form + Yup
- π Responsive and modern UI built with Tailwind CSS
- π§© Scalable architecture with modular client-server design
Frontend: React (TypeScript), React Query, Zustand, Tailwind CSS, Framer Motion, React Hook Form, Yup Backend: Node.js, Express, Socket.IO, MongoDB, Mongoose Auth: JWT Deployment: Vercel (client) & Render / Railway (server) Version Control: Git + GitHub
Clone repository
git clone https://github.com/Jaymeen1712/echo-chat.git
cd echo-chatcd client
npm install
npm run devcd server
npm install
npm run devEnsure you update a .env file in the server directory with the following:
DATABASE_URL=your_mongodb_connection_string
JWT_SECRET=your_secret_keyπ Try it here: echo-chat-js.vercel.app
echo-chat/
βββ client/ # React frontend
β βββ src/
β β βββ components/
β β βββ hooks/
β β βββ store/
β β βββ pages/
β β βββ utils/
β βββ package.json
βββ server/ # Express + Socket.IO backend
β βββ api/
β β βββ controllers/
β β βββ models/
β β βββ routes/
β β βββ api/server.js
β βββ package.json
βββ README.md
- Efficiently managing real-time communication using Socket.IO
- Building a scalable frontend architecture with Zustand and React Query
- Ensuring clean API integration and consistent state sync
- Handling form validation and authentication securely
- Deploying and testing full-stack apps with Vercel and Render
