GithubHelp home page GithubHelp logo

ec2ensemble's Introduction

PMCA-CIC

Project Overview

Jacktrip is a command line program, used by musicians all over the world to collaborate with each other remotely through the internet. Other more commonly used Voice over Internet Protocol (VoIP) softwares, such as Zoom or WhatsApp, have a noticeable audio quality drop while using them. This is unwanted when trying to collaborate and perform music together. Jacktrip provides a solution by supporting bidirectional, high quality, uncompressed audio streaming with any number of channels, allowing musicians to perform together through the internet, while having superb audio quality and low latency.

However, creating Jacktrip servers is not an easy task, especially for musicians whom are usually less technologically literate. Thus, this prototype aims to be a user-friendly ReactJS web application, used to manage Amazon EC2 instances that is running Jacktrip Hub Servers in multiple AWS regions.

Table of Contents

Index Description
Stack Overview Examine the application architecture.
High Level Architecture Check out the application's user interface.
Application Screenshots Learn more about each stack of the application
Deployment Learn how to deploy this project yourself.
Credits Meet the team behind this
License License details.

Stack Overview

  • Frontend - ReactJS Web Application
  • Data - All data is saved in Amazon DynamoDB
  • Auth - AWS Amplify and Cognito provides unique user login and authentication.
  • Backend - API calls are made to AWS API Gateway and handled by AWS Lambda functions orchestrated by AWS Step Functions. Jacktrip Servers are hosted in Amazon EC2 instances.

High Level Architecture

alt text

Architecture Diagram

Application Screenshots

login page

Application Login Page

home page

Main Page after the user logged in with rooms already created

home page

Entering details to create a room on the AWS server

home page

Room in creation status

home page

Status update when the room is successfully created
Once a room is successfully created, you can either (from right to left)
  1. Stop: terminates the room server from running, the IP address would be removed and deleted from the database since the room is not running anymore.

  2. Edit settings: edits the current information of the room, including room name, description, frequency, buffer and the region of where the room server is located.

  3. Restart jacktrip: restarts the jackstrip server

  4. Delete: stops the room server and delete the room information from the database.

  5. Share: a link which other guest users can access to see the information and status of the room.


home page

Creating a room with a Jacktrip Server IP Address

home page

Successfully adding an external room into the database

home page

A link to share with other people to view the information of the specific room

home page

A privately accessed page that shows the information of a specific room

Deployment

To deploy this solution into your AWS Account please follow our Deployment Guide

Changelog

Credits

This prototype was architected and developed by Andrew Shieh and Jacqueline Huang, with guidance from the UBC CIC technical and project management teams.

License

This project is distributed under the MIT License.

ec2ensemble's People

Contributors

shiehand avatar qlnjq avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.