A react/redux project to view multiple twitch streams at the same time!
Goal: Create a single page app w/ react + redux + immutableJS that allows a user to configure any amount of windows in the browser.
- Select X amount of streams by channel name to put into a configurable grid display
- Responsive display w/ delete stream window
- Get a list of channels for autocomplete
- Configurable window dimensions
react-grid-layout
, or trymasonry
as an example of how to integrated 3rd party non-react libs into react
- Persist channels across full page refreshes (local storage state)
- Keybindings to mute/unmute -> go full screen quicker
- Unified chat to broadcast the same message across a subset of the streams in view
-
Setup aws instance for public playground
-
Add babel-eslint -
Add Theme (pick css/inline style framework)
Add base theme- Look into other css frameworks for inline styles
-
Basic layout and workflow w/ react-router v4 -
Add ReduxAdd in store configurationAdd in immutableJS store scaffoldingAdd in transit-js encoding for immutableJS records
Persist to local storagelocalForage
integration
Load from local storageredux-persist
integration
-
Add Fetch clientAdd client wrapper over top of fetchAdd redux-saga w/ saga middlewareAdd TWITCH API integration for channel queryingAdd YOUTUBE API integration for channel queryingAdd GOOGLE URL Shortener for sharing a layout configuration
-
Help dialog
Add help dialog modal- Fill out help content and directions for usage
-
Share dialog and google link shortner integration
Add share dialog w/ input field that displays shortened google url link of the layout data from the storeAdd google url shortener API w/ saga
-
Load shared configuration from linkAdd landing page for the sharable stuffAdd load container that takes a configuration from the url and injects into the current layout state for the user.
-
Stream Layout Features
Integratereact-grid-layout
for configurable grid layoutIntegrate Twitch Player and Youtube Player to view videos or live streams- Add blank stream widget
Add button from NavbarDrag and drop link or video stream into container- Input field to copy and paste link reference
Clear all widgets in layoutDelete an individual widget from layout- Change Video Quality across all streams
- Mute / Unmute across all streams
- Shuffle View for layouts
- Add toggle button into shuffle view