DouglasMacKrell / DougTV

A One-To-Many Video Broadcast Full-Stack Web App that allows users to quickly launch a broadcast and be publicly seen and heard by an audience anywhere in the world!
https://dougtv.herokuapp.com/
13 stars 3 forks source link
reactjs rtcpeerconnection socket-io video-broadcast webrtc webrtc-video

DougTV

Live @ dougtv.herokuapp.com

Heroku

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.

DougTV Site Walkthrough

Videos

<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" />

Features

Users are able to:

A Manager is able to:

A Cron Job has been set to:

Future Features

Technical Milestones

Technologies Used

Local Setup

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.

  1. Clone this repo into a folder of your choice:

       git clone https://github.com/DouglasMacKrell/DougTV.git
  2. Install dependencies for the Node/Express Server:

       npm install
  3. Install dependencies for the React App (client folder):

       cd client && npm install
  4. 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

Make sure PostgreSQL is running!

  1. To launch the Node/Express server, inside the root folder run:

       npm start
  2. 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";
  3. 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";
  4. 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";
  5. To launch the React App, inside the client folder, and preferably in another terminal window run:

       npm start
  6. 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


Please check out my other work at DouglasMacKrell.com


DougTV Social Media


Before you leave, please take note: You're the best! Thank you for visiting! Please give this project a star and be sure to check out my [YouTube Channel](https://youtube.com/BigMacKrell)!