A Web application to see their favorite streamer's data with Twitch API using oAuth login. Application URL: http://twitch-assignment.herokuapp.com/login.php
Version: 1.0 release of the twitch-assignment application built using PHP 7.2, JQuery.
- Contributor
- Overview
- Problem Domain
- Feature List
- Future improvements
- Technologies Used
- How to run application
- Tests
- Contact
- Aniruddhsinh Dhummad https://github.com/Aniruddh1707
Here in this application we provides any twitch user to login using twitch authentication UI and stream their favorite streamer live channel. Also enables user to chat on their favorite channels. Also there is an option to "Set Favourite Streamer" which is used to set streamer video and chat content for searched streamer by user.
Build a web application that helps its audience to see their favorite streamer's Twitch events in real-time including chat feature using twitch account login.
-
Server:
- Application Routes
- login.php
- home.php
- Refresh authentication token when it expires
- Deployed on Heroku
- Application Routes
-
Client:
- Actractive layout
- Improving the design of existing code
- Cloud integration or AWS deployment
- User Experience
- Better UI experience
- PHP
- JQuery
- HTML
- CSS3
- Heroku
- http://twitch-assignment.herokuapp.com/login.php
- Login with Twitch account
- Once on dashboard, enter streamer name and click on search streamer button.
- Wait for the content to be loaded
- videos and chat support
- If users wants to load searched streamer video & chat insted of default video and chat content then click on "Set As Favourite" button.
- click on logout button to signout of application
- Postponed for future.
- Please don't hesitate to reach out to [email protected] if you have any questions or issues while running this application.
-
How would you deploy the above on AWS? (ideally a rough architecture diagram will help)
-
Where do you see bottlenecks in your proposed architecture and how would you approach scaling this app starting from 100 reqs/sec to 900MM reqs/sec over 6 months?
- Currently this application deployed on Heroku server with PHP environment. If the number of users grow, we should plan for scaling the server to handle more traffic with auto scaling solutions given by AWS Elastic Beanstalk.
- AWS Elastic Beanstalk is an easy way to deploy and scale applications written in Python, Ruby, Java, Node.js, Go, or PHP in familiar environments like Apache, Nginx, Passenger, and IIS, without worrying about the infrastructure that runs those applications.
- Go to your AWS Elastic Beanstalk console.
- Create a New Application. Choose the Type of application. For now Elastic Beanstalk Supports Docker, PHP, Java Tomcat, Ruby etc. For this we will use PHP 7. We will deploy a basic PHP application.
- Create Amazon ECR (Elastic Container Registry) and uploading the node.js app image to it
- Now, Create a new Environment. Choose Web Server.
- Select the required settings like Auto-scaled or single Instance Environment, VPC/EC2.
- RDS options:
- Snapshot : none
- DB Engine : mysql
- Instance Class: db.t2.micro (if you want to stay in the free tier)
- Allocated Storage: 5 to 20 Gb (if you want to stay in the free tier)
- Availability: Single Availability
- After this the environment setup starts & you can check the events in the recent events. Also, other configurations, Logs, Alarms & monitoring can be managed from the Elastic Beanstalk Dashboard itself.
- The last step is to change the endpoint, DB Name, username & password for mysql in configuration file of PHP.
- Now, just create a zip of all the files & upload via Elastic Beanstalk dashboard & you can access previous application versions as well. Just hit the link given in the Elastic Beanstalk dashboard & the following should open.