DougTV is a One-To-Many Video Broadcast Full-Stack Web App that allows users to quickly launch a live broadcast video stream and be publicly seen and heard by an audience anywhere in the world!
Built with React.js with Hooks, Node.js with Express, and PostgreSQL. The video broadcast feature is facilitated by socket.io and a WebRTC RTCPeerConnection.
<img src="http://img.youtube.com/vi/MhrdFbG6gCU/0.jpg" alt="Video Walkthrough Of DougTV" width="240" height="180" border="10" />
<img src="http://img.youtube.com/vi/fTE690MjbcA/0.jpg" alt="Video Walkthrough Of DougTV" width="240" height="180" border="10" />
Users are able to:
A Manager is able to:
A Cron Job has been set to:
NOTE: This repo has been configured for deployment on Heroku, but can be run locally after a few adjustments.
You must install Node.js as well as PostgreSQL in your computer.
You can check for these dependencies with node -v
and psql -v
. If your shell/terminal doesn't complain and you see version numbers you are good to go.
Clone this repo into a folder of your choice:
git clone https://github.com/DouglasMacKrell/DougTV.git
Install dependencies for the Node/Express Server:
npm install
Install dependencies for the React App (client
folder):
cd client && npm install
Create database and seed sample data. While inside the root directory, open the seed.sql
file and:
Change
DROP TABLE IF exists broadcasters;
to
DROP DATABASE IF EXISTS dougtv;
CREATE DATABASE dougtv;
\c dougtv;
Then seed the new database from the root folder:
cd ..
psql -f seed.sql
To launch the Node/Express server, inside the root folder run:
npm start
Before you can launch the React App, you must target the ENDPOINT of the socket.io server within the three files that use this connection. In the client
=> src
=> components
folder, open the Broadcast.jsx
file within the Broadcast
folder.
On line 28, change
const ENDPOINT = "https://dougtv.herokuapp.com/";
to
const ENDPOINT = "http://127.0.0.1:4004";
Next, from the components
folder, open Join.jsx
within the Join
folder.
On line 13, change
const ENDPOINT = "https://dougtv.herokuapp.com/";
to
const ENDPOINT = "http://127.0.0.1:4004";
Finally, from the components
folder, open Watch.jsx
within the Watch
folder.
On line 18, change
const ENDPOINT = "https://dougtv.herokuapp.com/";
to
const ENDPOINT = "http://127.0.0.1:4004";
To launch the React App, inside the client
folder, and preferably in another terminal window run:
npm start
A new browser tab should have been opened and the App should be running. If that is not the case check the terminals output for errors, if you are unable to troubleshoot the problem, I would be happy to address issues so open one