Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jeevanrushi07/Speakeasy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

18 Commits

Repository files navigation

Speakeasy: Fullstack Chat & Video Calling Platform

πŸ“š Project Overview

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 dev

πŸ—‚οΈ Directory Structure

chat-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
└── ...

πŸ“‘ API Endpoints (Backend)

Base URL: http://localhost:5001/api

  • Auth
    • POST /api/auth/signup β€” Register new user
    • POST /api/auth/login β€” Login
    • GET /api/auth/me β€” Get current user
  • User & Friends
    • GET /api/users/friends β€” Get my friends
    • POST /api/users/friend-request/:id β€” Send friend request
    • PUT /api/users/friend-request/:id/accept β€” Accept friend request
    • GET /api/users/friend-requests β€” Get incoming/accepted requests
    • GET /api/users/outgoing-friend-requests β€” Get outgoing requests
    • GET /api/users/recommended β€” Get recommended users
  • Chat
    • GET /api/chat/token β€” Get chat/video token

All protected routes require authentication (JWT in cookies).


πŸ§‘β€πŸ’» Contact

Name: JEEVAN RUSHI SUDULA
Email: jeevanrushicreations584@gmail.com

Feel free to reach out for any queries, suggestions, or contributions!

About

SpeakEasy is a language exchange web app that helps users connect across the world to practice languages, make friends, and engage in real-time chats and video calls. Built to make language learning more social and fun!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /