Skip to content
forked from michaeljolley/io

A Node.js based system for managing a stream, including a chat bot, overlays, stream note generation and more.

License

Notifications You must be signed in to change notification settings

CodemanCodes/io

 
 

Repository files navigation

master vNext Contributors
Build Status Build Status 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_USER Username to authenticate with GitHub. All commits in streamnotes will be created with this user
GITHUB_PASSWORD Password to authenticate with GitHub. All commits will need this.
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

Release Notes

See CHANGELOG.md

Contributing

Want to contribute? Check out our Code of Conduct and Contributing docs. This project follows the all-contributors specification. Contributions of any kind welcome!

Thanks goes to these wonderful people (emoji key):

Anthony Conrad
Anthony Conrad

🤔 💻 🚇
Sushinateur
Sushinateur

🤔
Martin Raymond
Martin Raymond

🤔 💻 🚇
David Poindexter
David Poindexter

🚇 🤔
Michael Jolley
Michael Jolley

🤔 💻 🚇 📖
Andrés Amarís
Andrés Amarís

💻
Chris Jones
Chris Jones

🤔
Flyken
Flyken

🤔
Davin Davies
Davin Davies

🤔
CodemanCodes
CodemanCodes

🤔 📓

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

About

A Node.js based system for managing a stream, including a chat bot, overlays, stream note generation and more.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 73.9%
  • JavaScript 10.7%
  • Dockerfile 6.4%
  • HTML 5.3%
  • CSS 3.7%