Speakeasy is a fullstack real-time chat and video calling platform designed for language exchange and social connection. It features:
- π Real-time messaging with typing indicators & reactions
- πΉ 1-on-1 and group video calls with screen sharing & recording
- π Secure JWT authentication & protected routes
- π Language exchange with user profiles and friend system
- π¨ 32 unique UI themes (customizable)
- β‘ Modern tech stack: React, Express, MongoDB, TailwindCSS, TanStack Query
- π§ Global state management with Zustand
- π¨ Robust error handling (frontend & backend)
- π Ready for free deployment
π§ͺ .env Setup
Backend (/backend)
PORT=5001
MONGO_URI=your_mongo_uri
STEAM_API_KEY=your_steam_api_key
STEAM_API_SECRET=your_steam_api_secret
JWT_SECRET_KEY=your_jwt_secret
NODE_ENV=development
Frontend (/frontend)
VITE_STREAM_API_KEY=your_stream_api_key
π§ Run the Backend
cd backend
npm install
npm run devπ» Run the Frontend
cd frontend
npm install
npm run devchat-and-video-calls-platform/
βββ backend/ # Express.js backend API
β βββ src/
β β βββ controllers/ # Route controllers (auth, chat, user)
β β βββ lib/ # DB and stream utilities
β β βββ middleware/ # Auth middleware
β β βββ models/ # Mongoose models (User, FriendRequest)
β β βββ routes/ # API route definitions
β β βββ server.js # App entry point
β βββ package.json
β βββ ...
βββ frontend/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ constants/ # App constants
β β βββ hooks/ # Custom React hooks
β β βββ lib/ # API/axios/utils
β β βββ pages/ # App pages (Home, Friends, Chat, etc.)
β β βββ store/ # Zustand stores
β β βββ ...
β βββ public/ # Static assets
β βββ index.html
β βββ package.json
β βββ ...
βββ README.md # Project documentation
βββ ...
Base URL: http://localhost:5001/api
- Auth
POST /api/auth/signupβ Register new userPOST /api/auth/loginβ LoginGET /api/auth/meβ Get current user
- User & Friends
GET /api/users/friendsβ Get my friendsPOST /api/users/friend-request/:idβ Send friend requestPUT /api/users/friend-request/:id/acceptβ Accept friend requestGET /api/users/friend-requestsβ Get incoming/accepted requestsGET /api/users/outgoing-friend-requestsβ Get outgoing requestsGET /api/users/recommendedβ Get recommended users
- Chat
GET /api/chat/tokenβ Get chat/video token
All protected routes require authentication (JWT in cookies).
Name: JEEVAN RUSHI SUDULA
Email: jeevanrushicreations584@gmail.com
Feel free to reach out for any queries, suggestions, or contributions!