![logo](https://raw.githubusercontent.com/kamroot/universal-communicator/main/assets/logo.png)
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
๐พ Tech Stack
Client
Database
๐ฏ Features
- Feature 1
- Feature 2
- Feature 3
๐จ Color Reference
Color | Hex |
---|---|
Primary Color | |
Secondary Color | |
Accent Color | |
Text Color |
๐ 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.