/universal-communicator

Primary LanguageTypeScriptMIT LicenseMIT

logo

SignalWire Demo (not official)

This project is a demo of everything SignalWire can do in one app. Voice, video, messaging etc.

View Demo ยท Documentation ยท Report Bug ยท Request Feature


๐Ÿ“” Table of Contents

๐ŸŒŸ About the Project

๐Ÿ“ท Screenshots

screenshot

๐Ÿ‘พ Tech Stack

Client
Server
Database
DevOps

๐ŸŽฏ Features

  • Feature 1
  • Feature 2
  • Feature 3

๐ŸŽจ Color Reference

Color Hex
Primary Color #222831 #222831
Secondary Color #393E46 #393E46
Accent Color #00ADB5 #00ADB5
Text Color #EEEEEE #EEEEEE

๐Ÿ”‘ Environment Variables

To run this project, you will need to add the following environment variables to your .env file

API_KEY

ANOTHER_API_KEY

๐Ÿงฐ Getting Started

โ€ผ๏ธ Prerequisites

This project uses Yarn as package manager

 npm install --global yarn

โš™๏ธ Installation

Install my-project with npm

  yarn install my-project
  cd my-project

๐Ÿงช Running Tests

To run tests, run the following command

  yarn test test

๐Ÿƒ Run Locally

Clone the project

  git clone https://github.com/Louis3797/awesome-readme-template.git

Go to the project directory

  cd my-project

Install dependencies

  yarn install

Start the server

  yarn start

๐Ÿšฉ Deployment

To deploy this project run

  yarn deploy

๐Ÿ‘€ Usage

Use this space to tell a little more about your project and how it can be used. Show additional screenshots, code samples, demos or link to other resources.

import Component from 'my-project'

function App() {
  return <Component />
}

๐Ÿงญ Roadmap

  • Todo 1
  • Todo 2

๐Ÿ‘‹ Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

๐Ÿ“œ Code of Conduct

Please read the Code of Conduct

โ” FAQ

  • Question 1

    • Answer 1
  • Question 2

    • Answer 2

โš ๏ธ License

Distributed under the no License. See LICENSE.txt for more information.

๐Ÿค Contact

Your Name - @twitter_handle - email@email_client.com

Project Link: https://github.com/Louis3797/awesome-readme-template

๐Ÿ’Ž Acknowledgements

Use this section to mention useful resources and libraries that you have used in your projects.

Nhadro - Let's Talk

Description

This is an exploration of how to build a communication app using SignalWire. We'll build a web-based app with the following ways of communicating with each ohter

  • make phone calls (PSTN) to any phone number in the world
  • Send SMS/MMS to any phone number in the world
  • Make browser to browser calls to another person that is logged into the app

Tech stack

The entire codebase is in Typescript. The UI is in ReactJS and backend is in NextJS.

UI / Frontend

ReactJS with context API for state management

Important npm packages used

  • ClerkDev

Application server

The application server is in NextJS. It exposes a set of RESTful API endpoints (listed below) as well as use socket.io (websockets) for real-time push notifications.

/palapas /users

SignalWire is a provider.

Socket.io / WebSocket

Server is listening for events marked channel-info

Data persistence layer

Nothing right now

Providers

  • SignalWire for SMS, MMS, Voice and Video
  • Getstream.io for chat

Roadmap

  • UI reorg with hard coded users,
  • find ways to allow people to create their own channels with either audio only, chat only or audio-video and chat in one channel
  • Deployment
  • use real users instead of fake users
  • allow users to be logged in for more than 15 min
  • invite someone to a audio, video or chat channel via (a) browser notifications, (b) or (c) email
  • allow chatting in audio or video channels
  • convert from audio channel to video or any direction
  • show presence of users
  • allow users to set their profile pictures
  • allow user to set their prefences to show whether they want to be contacted via chat, audio or video
  • invite other people in a channel where two people are already present
  • audio or video messages (not live)
  • real-time or post-meeting transcriptions and translations
  • invite external users to join the app

What's with the name?

Nhadro means Let's Talk in the darija langunage which is spoken in Morocco. Our lead contributor, Aya is from Morocco and she suggested this name. We feel this is appropriate for what this project is about.