• Stars
    star
    130
  • Rank 277,575 (Top 6 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

WebRTC based peer to peer voice, video calling and messaging web app build with MERN stack.

talkhouse

WebRTC based peer to peer video calling and messaging web app build with MERN stack.

Demo

Libraries used

  • React for frontend
  • Socket.io as signaling server and realtime communication
  • simple-peer for peer-to-peer WebRTC connections
  • Express as server
  • MongoDB for persistance of data
  • Material UI for creating ui
  • Redux for state management
  • Typescript for type safety, cure for headache you get when props are flowing all over the app with no hint

Features

  • User authentication and authorization
  • Audio and Video Chat
  • Messaging with storage of messages in the database
  • Sending invitation to friends
  • Able to accept or reject an invitation
  • Online indicator
  • Notify on typing
  • Sceen sharing
  • Accept and reject an incoming call

and more....

New Features added recently:

  • Group Chats Create group chats like in whats'app. Group Admins can add members to group and participants can leave the group.
  • Remove friend, ability to unfriend someone
  • Talkhouse Spaces like Twitter spaces. You can host a space and any of your friends can join that space.

The talkhouse spaces are implemented using MESH topology to establish a peer-to-peer network between every person or client joining the space. i.e, every person maintains a p2p connection with every other person in the room.

Installation

  1. Clone project
git clone [email protected]:saalikmubeen/talkhouse.git

Manual

If you dont't have docker installed, or don't know how to docker, [who doesn't know docker in the first place 😑]

cd into root project

1. cd server

npm install to to install server dependencies

Setup required environment variables:

  • MONGO_URI_DEV
  • JWT_SECRET

npm run dev to start development server with nodemon

Make sure you have mongoDB installed

1. cd client

npm install installs client dependencies.

npm run start to start the react development server.

Docker

Running project through docker is recommended. You don't have to do any setup. Just one docker-compose command and boom project is up and running 😊

docker-compose up --build

Make sure you have docker installed

TODOS

  • Enable group video and messaging functionality
  • Implement confirm email, reset password and email sending on friend invitation, Not a big deal to implement, just a little lazy to implement it
  • Store messages in an encrypted form in the database. (Just wrote it for fun. I mean is it even worth to do it 🤦‍♂️)
  • Enhace the UI. I hate CSS, not that good at it 🥱😓 . (Looks reasonably good now)

More Repositories

1

microservices-architectured-app

Event-driven microservices architectured e-commerce app created using Express.js, Typescript, NATS-Streaming and Next.js
TypeScript
537
star
2

datastructures-and-algorithms

For JavaScript lovers | JavaScript Implementation of various data structures and algorithms.
JavaScript
76
star
3

paperhouses

Airbnb like web app built with React, TypeScript, GraphQl and Express.js
TypeScript
38
star
4

whatsApp-lite

Not just another whatsApp Clone but more, built with React Native, Expo, TypeScript and Firebase.
TypeScript
37
star
5

go-grpc-implementation

Golang + Gin + Docker + gRPC + NGINX
Go
23
star
6

E-commerce-MERN-stack

ShopLinee - A fully fledged E-Commerce site build with MERN stack.
JavaScript
20
star
7

saalik.me

My portfolio built with Next.js, TypeScript, Firebase, and Vercel ✨
TypeScript
17
star
8

react-paint

Paint web app build with react and canvas
TypeScript
11
star
9

Musically---React-Music-Player

Musically - Music Player build with react
JavaScript
7
star
10

UI-Colors

For designers and frontend developers, to make their life a little easy while choosing between different shades of colors.
JavaScript
7
star
11

Revents

Revents - A social media app created with react and firebase
JavaScript
5
star
12

nextjs-graphql

Starting point for your next Fullstack NextJS and GraphQL million dollar personal project.
TypeScript
4
star
13

goravel

PHP's Laravel like web framework supercharged with Go
Go
3
star
14

dev-blog

Blog website created with next.js, tailwindcss and markdown
JavaScript
2
star
15

Netflix-Clone

Netflix Clone - Clone of Netflix build with react
JavaScript
2
star
16

ReadIt

ReadIt - Bookmark App for desktops created with Electron.js
JavaScript
2
star
17

trello-clone

Trello Clone build with React, TypeScript and react-beautiful-dnd
TypeScript
2
star
18

serverless-marketplace-app

A serverless marketplace app created with aws-amplify and graphql
JavaScript
1
star
19

speedtester

Speed Tester - A simple web app built using Javascript that tests typing speed.
JavaScript
1
star
20

saalikmubeen

1
star
21

typegraphql-api

A graphql authentication api created with type-graphql, the best typescript and graphql library
TypeScript
1
star
22

nextjs-blog

JavaScript
1
star
23

sellyNow

SellyNow - React Native shopping app
JavaScript
1
star
24

your_tracks

GraphQL API build with python graphql library, graphene and graphene-django
Python
1
star
25

Node-rest-api

A restful api built with core Node.js without using any external libraries or dependencies
JavaScript
1
star
26

graphql-typescript-api

Complete user authentication API from scratch with GraphQL and TypeScript. Clone this repo and use it as a boilerplate or starting point for your next GraphQL and TypeScript project.
TypeScript
1
star
27

Arpari-Hiring-Assignment

Arpari Hiring Assignment
JavaScript
1
star
28

Chat-App

Chat App - A simple text sending app created using socket.io where you can join and create your own chat rooms.
JavaScript
1
star
29

LightsOut

LightsOut - A simple game build using ReactJS
JavaScript
1
star
30

first-electron-app

JavaScript
1
star
31

django-recipes-api

An API that allows users to manage and create recipes build with DRF
Python
1
star
32

Capture-Photography-Portfolio

Capture - A photography portfolio website created with react and framer-motion.
JavaScript
1
star
33

Expensify---Expense-Manager-App

Expensify - Expense Manager App build with react, redux and firebase.
JavaScript
1
star
34

devsearch

Devsearch - Connect with skilled remote developers
HTML
1
star
35

Todo-API

TodoAPI App- A fairly complex Todo app which consumes its own api built using node js.
JavaScript
1
star
36

great-places

Capture and save the list of all the places you had fun travelling
JavaScript
1
star
37

ColorBeats-Maker

ColorBeats - Clone of patatap website, it produces different beats and sounds. Each keyboard key is related to a specific sound and background.
JavaScript
1
star