Skip to content

Twitch Stream Stats is a web app that displays some stream stats extracted from the Twitch API

Notifications You must be signed in to change notification settings

RowenaRavenclawWithExtraClaws/twitch-stream-stats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Twitch Stream Stats

Twitch Stream Stats is a web app that displays some stream stats extracted the Twitch API. You can start using the app here https://stream-stats.vercel.app/

Run locally

  • Just clone the repo.
  • Run docker-compose up.
  • Visit localhost:3000 to see this beauty!

Requirements Checks

Mandatory:

  • Sign in using Twitch account. ✅
  • Seed a database with the current top 1000 live streams on Twitch. ✅
  • Shuffle this data before inserting it in your database. ✅
  • Store the user in the database once they login. ✅
  • Display some stream stats and insights (in-memory and database): ✅
    • Total amount of streams per game. ✅
    • Highest viewer count stream per game. ✅
    • Median amount of viewers for all streams. ✅
    • Streams with an odd number of viewers. ✅
    • Streams with an even number of viewers. ✅
    • List of top 100 streams that can be sorted descending. ✅
    • List of top 100 streams that can be sorted ascending. ❌
    • Streams with the same amount of viewers. ✅
  • Update the top streams in your database every 15 minutes. ✅
  • Expire a user’s session after 1 hour, requiring them to log back in. ✅
  • Host your project somewhere so it’s publicly available for testing. ✅

Optional:

  • Not using built in helper functions in the backend. ✅
  • Not using built in helper functions in the frontend. ❌
  • Pagination (five records per request) ✅

Project folders

  • webapp contains code for the web application
  • api contains code for the API that is consumed by the web application.

Project architecture

project-arch

NOTE: IT IS NOT A MONOLITHIC APPLICATION. The web application, The API and the database are deployed separately.

For more information see web app doc and API doc