All Projects → aws-samples → amazon-ivs-chime-messaging-ugc-demo

aws-samples / amazon-ivs-chime-messaging-ugc-demo

Licence: Apache-2.0 license
This demo is designed to educate people who want to build live streaming platform with chatting feature. This demo is implemented using Amplify with Amazon IVS, ChimeSDK Messaging.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to amazon-ivs-chime-messaging-ugc-demo

amazon-ivs-chime-web-demo
A demo web application intended as an educational tool for demonstrating how to load and play Amazon IVS streams alongside the Amazon Chime SDK.
Stars: ✭ 35 (+75%)
Mutual labels:  single-page-app, livestream, amazon-chime, amazon-chime-sdk, amazon-ivs
amazon-ivs-auto-captions-web-demo
Use Amazon IVS in conjunction with Amazon Transcribe to deliver real-time captions for live streams.
Stars: ✭ 36 (+80%)
Mutual labels:  ivs, amazon-ivs
photo-sharing-website
Static pre-rendered photo-sharing website
Stars: ✭ 33 (+65%)
Mutual labels:  amplify, amplify-cli
TVGemist
An *Unofficial* Uitzending Gemist application for  TV
Stars: ✭ 23 (+15%)
Mutual labels:  livestream, live-streaming
aws-appsync-iot-core-realtime-dashboard
This sample application demonstrates a React based web dashboard receiving real-time updates from IoT sensors. The solution is built with AWS AppSync, AWS Amplify, Amazon Location Service, and AWS IoT Core technologies.
Stars: ✭ 75 (+275%)
Mutual labels:  amplify, amplify-js
T System
the moving objects tracking system via two axis camera motion (and as optionally n joint robotic arm) for raspberry pi distributions
Stars: ✭ 17 (-15%)
Mutual labels:  livestream, live-streaming
graphql-ttl-transformer
♻ Enable DynamoDB's time-to-live feature to auto-delete old entries in your AWS Amplify API!
Stars: ✭ 75 (+275%)
Mutual labels:  amplify, amplify-cli
amazon-ivs-ugc-web-demo
This repository shows how you can build a compelling user-generated content (UGC) live streaming webapp with Amazon IVS.
Stars: ✭ 14 (-30%)
Mutual labels:  live-streaming, amazon-ivs
UitzendingGemist
An *Unofficial* Uitzending Gemist application for Apple TV 4 (**deprecated, use TV Gemist ☝🏻**)
Stars: ✭ 48 (+140%)
Mutual labels:  livestream, live-streaming
tms
tms(toy media server) is a toy media server for myself learning media develop. Just for fun.
Stars: ✭ 29 (+45%)
Mutual labels:  livestream, live-streaming
skylark
An unified framework for building modern html5 applications across web and desktop.
Stars: ✭ 26 (+30%)
Mutual labels:  single-page-app
react-redux-boilerplate
A React boilerplate based on Redux, React Router, styled components and Parcel
Stars: ✭ 62 (+210%)
Mutual labels:  single-page-app
blogging-app-with-Angular-CloudFirestore
A blogging application created with the help of Angular on front-end and Google Cloud Firestore on backend.
Stars: ✭ 45 (+125%)
Mutual labels:  single-page-app
Live-Stream-Chat-Retriever
Retrieve live streams chat messages from different sources (Twitch, YouTube Gaming, Dailymotion etc...) to print them into a single HTML page.
Stars: ✭ 40 (+100%)
Mutual labels:  livestream
React Imvc
An Isomorphic MVC Framework
Stars: ✭ 211 (+955%)
Mutual labels:  single-page-app
elm-spa
Pure Elm library to easily build Single Page Applications
Stars: ✭ 37 (+85%)
Mutual labels:  single-page-app
React Mini Social Network
A reactive mini-social-network created with React!! 😍🍻
Stars: ✭ 203 (+915%)
Mutual labels:  single-page-app
Json Schema Editor
JSON Schema Editor is an intuitive editor for JSON schema. It provides a tree view to present the structure of schema, and a property inspector to edit the properties of schema element. Develop with Vue.js 2 and Firebase.
Stars: ✭ 194 (+870%)
Mutual labels:  single-page-app
Web-Broadcasting-Software
Broadcasting software for the web. (WBS)
Stars: ✭ 138 (+590%)
Mutual labels:  livestream
FlexDotnetCMS
A powerful, flexible, decoupled and easy to use and Fully Featured ASP .NET CMS, it can also be used as a Headless CMS
Stars: ✭ 45 (+125%)
Mutual labels:  single-page-app

Build a simple UGC(User Generated Content) platform using Amazon IVS and Chime SDK

Overview

This demo provides live streaming services for streamers and you can join the streamer's channel and watch it. You can chat with streamer and other viewers. Moreover, you could send a heart to streamer when you want to show your love to the streamer.

ivsdemo-preview

IMPORTANT NOTE: This project is intended for education purposes only and not for production usage.

Demo Architecture

image

Serverless Web Application

This demo is serverless web application, leveraging AWS Amplify. AWS Amplify provides set of tools and services that can be used together or on their own, to help front-end web developer build scalable full stack applications. You can configure app backends like backend API with Amazon API Gateway, AWS Lambda and auth feature with Amazon Cognito, DB with AWS AppSync.

Streaming & Chat Messaging

The streaming feature leverages Amazon Interactive Video Service. Amazon IVS provides streaming channel and Timed MetaAPI for interactive services like poll, Q&A, Heart button. To interact between streamer and viewers with chatting, this demo provides messaging chat feature with Amazon Chime SDK messaging.

Quick Start

IMPORTANT NOTE: Deploying this demo application in your AWS account will create and consume AWS resources, which will cost money.

To start demo quickly, follow the instructions as below.

Provision Backend Side

  • Click Launch Stack

  • Input Parameters

Check Available Region of using Amazon IVS and ChimeSDK Messaging. Default is us-east-1

image

  • Click Next and Create stack with acknowledgement check

image

  • Get outputs from CloudFormation stack

image

Configure Provisioned Backends to Frontend

  • clone repo to your local
  • go to root dir of repo

NOTE: If you are using Cloud9 for demo, you have to increase volume size of Cloud9 Instance. Run script resize_volume.shbefore npm install.

  • If you are using Cloud9

    • Go to Root Dir
    • chmod +x resize_volume.sh
    • ./resize_volume.sh
    • This script only works in Amazon Linux Cloud9. If you are using Ubuntu Cloud9, change script yum to apt-get -y.
  • Copy & paste API endpoints to src/config/apiConfig.js from Cloudformation ApiEndpoint outputs

image

  • Copy & past ChimeAppInstance ARN to src/config/chimeConfig.js from Cloudformation appInstanceArn output

image

Install & Set up Amplify

  • Run command npm install -g @aws-amplify/cli
  • Run command amplify configure
  • Set up Region and IAM User which you want to set.

image

Set Up Amplify Backend

  • Run command amplify init in root dir of repo

Enter the input value by referring to the following.

image

  • Run command amplify import auth
  • Select Cognito which is created in CloudFormation

image

NOTE: AppSync in Amplify cli slightly changed. Please follow as below to add AppSync API.

  • Run command amplify add api

  • Select GraphQL

  • Select Authorization modes. image

  • Select Amazon Cognito User Pool and type 'N' which we will not configure additional auth types. image

  • Select Continue and Blank Schema.

  • Select Y to edit schema.

  • Result as below. Open graphql schema file. file path is as below. image

  • Copy schema from src/config/schema.graphql to schema file like as below.

  • Save it. image

  • Run command amplify push

  • Type Yes to continue

  • Type Yes to create GraphQL API

  • Select javascript

  • Press ENTER Enter to select file name pattern of graphql queries to default

  • Type Yes to generate/update all possible GraphQL operations

  • Press ENTER to maximum statement depth as default

image

  • After updating resources is done, Check with amplify status command

image

Finally Done! Use Demo!

  • Go to root dir of repo
  • (For one time) Run command npm install
  • Run command npm start

Create Channel

  • Click Create Channel Button and create channel!

image

  • If you click My Channels, You can see your channels.

Join Others Channel

You could join the other channel and enjoy it.

Streaming your contents

You can stream your contents using OBS.

  • Click CHANNEL INFO in My Channels.

image

  • Get INGEST ENDPOINT and Channel STREAM KEY.
  • Input to OBS Application and stream it!
  • Start OBS > Settings > Stream and input ingest endpoint and stream key.

image

  • Start Streaming and enjoy Demo!

Clean Up

  • Remove CloudFormation Stack
  • Remove Amazon IVS channel which you made
  • Run Command amplify delete

Resources

License

This sample code is made available under a APACHE2.0 license. See the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].