GithubHelp home page GithubHelp logo

table-football's Introduction

README

Simple UI to track matches of table football across Amazon buildings.

Testing

 streamlit run --server.runOnSave True app.py

Updating the database

The database is stored in SQLite format to ./database.db.

The database structure is managed via the Alembic library, which organizes updates into migrations (pieces of code run once, in order, to update an existing database).

To create a migration, you need to use the following command line from a Terminal:

python -m alembic revision -m "add created_by fields"

This will create a file into database/versions, which you may edit to contain raw SQL or Alembic-commands to work on the database.

Update of the database can be done via Alembic itself or the Admin page of the UI.

table-football's People

Contributors

dasc3er avatar ferrarilad avatar

Stargazers

Mattia Sanvito avatar  avatar

Watchers

 avatar

Forkers

paoloc90 dasc3er

table-football's Issues

Player specific page/stats

This issue is to track the addition of a player specific page to analyze the information available for a specific player.
This page should be reachable over all the site adding a link on all user names when printed, and should contain 2 main sections:

  • Player ELO evolution over time
  • Last games (10?) of the specific player, with ELO increase/decrease
  • Information on average ELOs of allies and enemies in the last games

The first section requires the creation of an additional table tracking ELO variations related to the various matches. I propose to store both the ELO value before the game and after (not the diff) for simpler management. We should then plot these variations over time, probably with a weekly reference (with ability to switch monthly).

The second section should use the information generated at the point above to display. Ideally, the result should be similar to the following, which is a standard ranking information available for online games (LoL specifically in this case):
image

The third section would allow a review of how each player is "choosing" to play with others, thus understanding if peculiar patterns are being used (e.g. top player going always against lower ones, ...).

Improve performance using Streamlit cache

A possible improvement on performance could be achieved by using Streamlit cache on the general ranking, game history and other sections. This cache should be reset every time a change is done on the underlying database.

Delete Match function

We should add a Delete Match button in case we need to delete a match, e.g. when a match was mistakenly added before one that was played before. Also, I want the default details in the edit match page to be those of the last match rather than the first

Win rate

We should add win rate to the Player Ranking Page

Remove red/blue distinction

I propose to remove the explicit red/blue distinction in the pages, given that this information is not used and over-complicates matches recording. Moreover, this is not always applicable directly depending on table football in use.

Solution would be to rename the red/blue to Team 1/Team 2.

Nerd statistics

I propose the addition of 4 additional ELO measures in the tool, to provide further statistics for nerds.
These measures would be:

  • ELO on 1v1
  • ELO on 2v2
  • ELO on 2v2 as attacker
  • ELO on 2v2 as defender

They should be tracked separately to the standard ELO being used, and updated dynamically based on the games being recorded.

Match specific page

This issue is for the creation of a page specific for match information, including:

  • Information on the teams with results
  • Information on the ELO variations resulting from the game
  • Ability to directly edit the information

Moreover, we should include the ability to report the game as incorrect - allowing users to report issues, and potentially enabling checks by maintainers in the future.

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.