mcekovic / tennis-crystal-ball

Ultimate Tennis Statistics and Tennis Crystal Ball - Tennis Big Data Analysis and Prediction
Apache License 2.0
240 stars 34 forks source link
big-data bigdata data-analysis data-science database elo elo-rating forecast goat machine-learning prediction sports statistics tennis tennis-score

Ultimate Tennis Statistics and Tennis Crystal Ball

Build Status Build Status Web Site Quality Gate Status License Top Language

Logo Ultimate Tennis Statistics is a Tennis Big Data Analysis tool with a nice web GUI. Tennis Crystal Ball is a set of Match Prediction and Tournament Forecasts algorithms powered by AI and machine learning.

Features

Web Site

https://www.ultimatetennisstatistics.com

Data Loaders

Technology

PostgreSQL, Java, Spring Boot, Thymeleaf, JQuery, Bootstrap, Google Charts, Groovy...

Architecture

flowchart LR
  user((User)) --> tn
  subgraph uts[Tennis Stats]
    direction TB
    subgraph app[Spring Boot Java App]
      direction TB
      cc[Caffeine<br>Cache]
      mvc(Spring<br>MVC) --> tcb(Tennis<br>Crystal Ball<br>Predictor) & elo(Elo Ratings<br>Manager)
      mvc & tcb & elo --> cc
    end
    tn[[Tomcat<br>Native]] --> mvc
    app --> cb[Let's Encrypt<br>Certbot] -- SSL certificate ---> tn
  end
  subgraph dl[Data Load]
    direction TB
    load(Data Load<br>Groovy Script) --> gd[[Selenium<br>Geckodriver]] --> ff[Headless<br>Firefox]
  end
  app -- spawn ---> load
  app & load ---> db[(<br>PostgreSQL<br>DB)]
  load --> repo[Jeff Sackman<br>Tennis Repo]
  ff --> www([www])

  style uts fill:DimGray
  style app fill:CadetBlue
  style mvc fill:Indigo
  style elo fill:DarkOrchid
  style tcb fill:DarkMagenta
  style cc fill:Maroon
  style tn fill:ForestGreen
  style cb fill:Crimson
  style dl fill:DimGray
  style load fill:RoyalBlue
  style gd fill:IndianRed
  style ff fill:OrangeRed
  style db fill:SteelBlue
  style repo fill:DarkSlateGray

  click mvc href "https://github.com/mcekovic/tennis-crystal-ball/tree/master/tennis-stats/src/main/java/org/strangeforest/tcb/stats/controller" _blank
  click elo href "https://github.com/mcekovic/tennis-crystal-ball/tree/master/tennis-stats/src/main/java/org/strangeforest/tcb/stats/model/elo" _blank
  click tcb href "https://github.com/mcekovic/tennis-crystal-ball/tree/master/tennis-stats/src/main/java/org/strangeforest/tcb/stats/model/prediction" _blank
  click cc href "https://github.com/ben-manes/caffeine" _blank
  click tn href "https://tomcat.apache.org/native-doc" _blank
  click cb href "https://certbot.eff.org" _blank
  click load href "https://groovy-lang.org" _blank
  click gd href "https://github.com/mozilla/geckodriver" _blank
  click ff href "https://www.mozilla.org/en-US/firefox" _blank
  click db href "https://www.postgresql.org" _blank
  click repo href "https://github.com/JeffSackmann/tennis_atp" _blank

Screenshots

Home Page

Home Page

GOAT List

GOAT List

Player Profile

Player Profile

Player Tournaments

Player Tournaments

Player Timeline

Player Timeline

Player Rivalries

Player Rivalries

Player GOAT Points

Player GOAT Points

Dominance Timeline

Dominance Timeline

Surface Timeline

Surface Timeline

Greatest Rivalries

Greatest Rivalries

Ranking Charts

Ranking Points Chart

GOAT Points Chart

Peak Elo Ratings

Peak Elo Ratings

Top Performers

Top Performers

Statistics Leaders

Statistics Leaders

Seasons

Seasons

Best Seasons

Best Seasons

Tournaments

Tournaments

Records Book

Records Book

License

Tennis Crystal Ball and Ultimate Tennis Statistics source code is licensed under Apache 2.0 License.

Creative Commons License

'GOAT' Formula, customizations of Elo Ratings for tennis, Match Prediction, Tournament Forecasts and other algorithms by Ultimate Tennis Statistics are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

In short: Attribution is required. Non-commercial use only.