Coder Social home page Coder Social logo

wmgt's Introduction

WMGT - Walkabout Mini Golf Tournament app

Application for running and analysising the weekly Walkabout Mini Golf VR game tournaments.

ko-fi

Live site on OCI

Tech Details

Basic Data Model Structure

tournaments
  tournament_sessions
    tournament_courses
    tournament_players

courses
    course_strokes
players
    rounds

Helper core views:

  • wmg_courses_v: All information about a course; name, par per hole and course par.
  • wmg_rounds_v: All information about a player's round; player, course, course par, strokes per hole, under par per hole, and totals for strokes and under par.
  • wmg_rounds_unpivot_mv: Materialize view thst unpivots one row per hole

Naming convention

CS[1-18] or H[1-18]: Par on a course hole (Course strokes per hole).
S[1-18]: Strokes per hole
PAR[1-18]: Player under par score per hole

WMG_ROUND & WMG_ROUND_V

The WMG_ROUND_V view contains just about everything you might need about a player's round.

: Column : Description
S[1-18] Strokes taken per hole (1, 2, 3, ...)
ROUND_STROKES Sum of S[1-18]
PAR[1-18] Under par score per hole
UNDER_PAR Sum of PAR[1-18] unless an override is in place
FINAL_SCORE Under par score entered by player. It may not match UNDER_PAR
SCORE_OVERRIDE_FLAG Y is an override score is in place

WMG_ROUNDS_UNPIVOT_MV

This Materialize View is a little gem that transforms wmg_rounds (where one row is a complete round with holes 1,2,3,4...18 are columns) to hole 1,2,3,5...18 into rows

If I describe it it looks like this:


NAME         DATA TYPE           NULL  DEFAULT    COMMENTS
------------ ------------------- ----- ---------- --------------------------------
 WEEK        VARCHAR2(10 BYTE)   Yes
 COURSE_ID   NUMBER              Yes
 PLAYER_ID   NUMBER              Yes
 H           NUMBER              Yes              Hole being playes 1-18
 SCORE       NUMBER              Yes              Strokes taken by the player
 PAR         NUMBER              Yes              The under par value for a hole.

Assets

The Application Property BUCKET is used to access static files like course previews. There's a wmgt-asset bucket setup in the OCI Object Storage that's currently holding several of these assets.

The following blog post was extremly helpful for setting this up: http://blog.osdev.org/oci/2020/10/15/oci-objectstorage-website.html

wmgt's People

Contributors

rimblas avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

wmgt's Issues

Highlight New Players

New Players are those that have never played in a tournament.
Once a tournament closes, the new player status is cleared. However, if they register but never play, the status will remain.

New players will be identified via a rank. Ranks are now:

  • New
  • Amateur
  • Semi-pro
  • Pro

Player Score Submission

  • Allow players to enter their final score
  • Make scorecard entry responsive and spit between
    • Easy Front and Back 9
    • Hard Front and Back 9
  • Use "final score" plus "override" - depends on #2
  • Show discrepancy between player submission and scorecard

Score Overwrites

Occasionally, penalties are issued in the form of a higher score.
Admins should be able to override the final score for an easy or hard course as needed.

  • Need fields to score a scoring override (score and reason)
  • Need to be able to enter an override and reason
  • Modify pages (p9) so they save the correct new values
  • Calculation views and validations need to be aware of the overrides

Implement Player “Ranks”

Add tier for players: Pro, Semi-Pro, Amateur.

  • Add ranks
  • Disaply Ranks on Profile and results
  • Ability to edit ranks on Player profile by TD

Discord nicknames

When players have a server nickname with WMGT we’re unable to see that nickname.

Discord Login

  • Login with Discord
  • Link Discord Login to existing player
  • Better display of an avatar
  • Create New Player: If not a match, a new player record is created probably during registration
  • Block registration via Google or APEX login

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.