A real-time language exchange platform where people connect, chat, and video call to practice languages together.
- 🔐 JWT Authentication with protected routes
- 🌍 Language partner matching based on native and target language
- 💬 Real-time messaging with message delete
- 📹 1-on-1 video calls with mute, camera toggle, and recording controls
- 👥 Friend request system with notifications
- 🎨 32 unique UI themes
- ⚡ Real-time online status indicators
- 📱 Fully responsive design
Frontend
- React.js
- TanStack Query (data fetching + caching)
- Zustand (global state management)
- TailwindCSS + DaisyUI
Backend
- Node.js + Express.js
- MongoDB + Mongoose
- JWT Authentication
- Stream API (real-time messaging + video calls)
Deployment
- Frontend + Backend: Render
# Clone the repo
git clone https://github.com/Kunal0234/streamify.git
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm installCreate a .env file in the backend folder:
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
STREAM_API_KEY=your_stream_api_key
STREAM_API_SECRET=your_stream_api_secret
NODE_ENV=development
PORT=5001Create a .env file in the frontend folder:
VITE_STREAM_API_KEY=your_stream_api_key# Run backend
cd backend
npm run dev
# Run frontend
cd frontend
npm run devstreamify/
├── backend/
│ ├── src/
│ │ ├── controllers/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── middleware/
│ │ └── lib/
│ └── server.js
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── store/
│ │ └── lib/
│ └── index.html
Kunal Kumar
- GitHub: @Kunal0234