Git Product home page Git Product logo

io's Introduction

This repository has been deprecated and superseded by https://github.com/MichaelJolley/vulcan.

All Contributors

IO is a Twitch chat-bot, overlay & stream note micro-service application.

Services

All services use Node.js & TypeScript unless otherwise noted.

Service Description
admin Web portal for administering entire system. (Under construction)
api Express API used as a proxy between third-party API's and the IO system
chat Connects to Twitch chat via IRC and emits various events to the io-hub service
chron Executes various functions at timed intervals to update other services
hub A Socket.io hub that listens and emits events for the application
logger Listens to events emitted from the io-hub and logs to a MongoDB
overlay Web pages served by Express that listen to events from the io-hub and render UIs to be displayed on stream
shared Contains interfaces, classes and data access logic used by other services
streamnotes Listens for certain events emitted from the io-hub to generate stream notes for a completed stream and push to GitHub
user Express web app that acts as a stateful service for all user (viewer) data used by the application
webhooks Express web app that listens for calls from third-parties and relays events to the io-hub

Environment Variables

When running locally, environment variables can be added to each service via a .env file in the services root directory. An example (.env-example) lives in the root of the repository. Below is a description of all environment variables and their use.

Variable Purpose
GITHUB_USERNAME Username to use in building the GitHub repo url.
GITHUB_EMAIL_ADDRESS Email address associated with the commit to git.
GITHUB_NAME Name of the user associated with the commit to git.
GITHUB_AUTH_TOKEN Personal access token from GitHub. Used to authenticate when generating stream notes.
GITHUB_REPO GitHub repository name to commit stream notes to.
MONGO_DB_CONN_STRING Connection string for MongoDB that will store stream, user & vote data
MONGO_DB_USER Username for MongoDB connection
MONGO_DB_PASSWORD Password for MongoDB connection
MONGO_DB_DATABASE Database that contains the stream, user & vote data
NGROK_AUTH_TOKEN Used by webhooks service when running the application locally.
TWITCH_CLIENT_ID Client Id assigned to an application by Twitch at https://dev.twitch.tv
TWITCH_CLIENT_TOKEN Auth token for the streamer's Twitch account
TWITCH_CLIENT_USERNAME Twitch login for the streamer
TWITCH_CLIENT_USER_ID Twitch user id of the streamer
TWITCH_BOT_USERNAME Twitch login for the bot. Can be the same as TWITCH_CLIENT_USERNAME.
TWITCH_BOT_TOKEN Twitch Auth token for the bot account. Can be same as TWITCH_CLIENT_TOKEN

Custom Comic Chat Avatars

One of the fun capabilities of IO is a reproduction of Microsoft Comic Chat from the late 90's. We welcome anyone to submit a pull request with a custom avatar for their Twitch account.

The requirements for an avatar are pretty specific. You need two images: head-{twitchHandle}.png & body-{twitchHandle}.png. Both should be transparent PNGs.

We've created a place to test your images at codesandbox. You can reach it at https://codesandbox.io/s/quizzical-mendeleev-0gwnq. Follow the instructions there to get your body & head images just right and then submit a pull request adding them to the /assets/images/characters/{your twitch handle} path.

Release Notes

See CHANGELOG.md

Contributors

Thanks goes to these wonderful people:


Anthony Conrad

πŸ€” πŸ’» πŸš‡

Sushinateur

πŸ€”

Martin Raymond

πŸ€” πŸ’» πŸš‡

David Poindexter

πŸš‡ πŸ€”

Michael Jolley

πŸ€” πŸ’» πŸš‡ πŸ“–

AndrΓ©s AmarΓ­s

πŸ’»

Chris Jones

πŸ€” πŸ’»

Flyken

πŸ€”

Davin Davies

πŸ€”

CodemanCodes

πŸ€” πŸ““ πŸ’»

John Tsombakos

⚠️

Chance Murray

πŸ’»

ElectricHavoc

πŸ’»

Jonathan Delfraisse

⚠️

bravecobra

πŸ€”

Ancient Coder

πŸ€”

deathpax

πŸ€”

R.James Solenberg

πŸ€” πŸ–‹

Brian Clark

πŸ–‹

Mike Holloway

πŸ€” πŸ’»

Chris Gargotta

πŸ’» πŸ€”

Hugo Dahl

πŸ€”

Timmy Kokke

πŸ–‹

Adam Culp

πŸ€”

Simon Brookes

πŸ€”

This project follows the all-contributors specification. Contributions of any kind welcome!

io's People

Contributors

allcontributors[bot] avatar clarkio avatar cmjchrisjones avatar dependabot[bot] avatar influencer avatar mholloway24 avatar michaeljolley avatar mtheoryx avatar parithon avatar solenberg avatar sorskoot avatar toefrog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  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.