StackChat is a modern, full-stack real-time chat application with video calling, friend requests, and sleek UI built for seamless communication. Designed for students, teams, and communities.
- React.js
- Tailwind CSS
- Stream Chat SDK (UI Components + Video Calling)
- Zustand (Global State for theme, etc.)
- React Query (Data fetching & caching)
- Lucide Icons
- DaisyUI
- Express JS
- MongoDB Atlas
- JWT Authentication (custom implementation)
- Full JWT auth: signup, login, logout, onboarding
- Protected routes
- Stream token generation using authenticated users
- ✅ User Signup/Login
- ✅ JWT-based Authentication
- ✅ Profile & Onboarding
- ✅ Add Friends / Accept Requests
- ✅ One-to-One Real-time Chat
- ✅ Video Calling via Stream API
- ✅ Theme Toggle (Light/Dark)
- ✅ Fully responsive UI
- ✅ Chat loader, toast notifications, clean UI transitions
-
Clone the repo and move into the backend directory:
git clone https://github.com/Yash-1485/StackChat.git cd StackChat/backend -
Install dependecies:
npm install
-
Create a
.envfile in the backend root:JWT_SECRET_KEY=your-jwt-secret-key PORT=8000 STREAM_API_KEY=your-stream-api-key STREAM_SECRET_KEY=your-stream-secret-key MONGO_URI=your-mongodb-uri -
Start server:
npm run dev
-
Move into the frontend directory:
cd ../frontend -
Install dependencies:
npm install
-
Create a
.envfile:VITE_STREAM_API_KEY=your-stream-api-key VITE_BACKEND_URL=http://localhost:8000 -
Start the development server:
npm run dev
- ✅ Group Chat Support
- ✅ Notifications via Firebase
- ✅ Settings Page
- ✅ Profile Edit and Image Upload
- ✅ Message Reactions / Typing Indicators
- ✅ Socket.IO-based fallback (for custom backend)
Built with ❤️ by Yash Parekh


