Giter VIP home page Giter VIP logo

tournamentmango's Introduction

Notice

This app is no longer maintained. It was never sustainable long term and now would require a rewrite due to firebase changing their API and angular 1 being sunsetted. If you would like to work on it, feel free to fork it.

TournamentMango Dependency Status bitHound Score Build Status Codacy Badge

TournamentMango is an open source tournament bracket and user management system. You can build an archive of players and keep track of all their scores over time (as well as their regular characters, games, and aliases).

You can also create and manage events and tournaments. An event is essentially a group of tournaments, but an event isn't necessary to create a tournament.

Currently, the bracket generator supports single elimination, double elimination, free for all, group stage (round robin), and masters (a FFA subtype).

Installation

  • Clone this repository
  • npm install
  • gulp

tournamentmango's People

Contributors

autalyst avatar bejebus avatar saviourofdp avatar seiyria avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tournamentmango's Issues

mobile improvements

  • fix the fab button
  • fix the tournament view header
  • make sure all the dialogs work well
  • fix the settings page
  • fix the scoring header

move to firebase static hosting

when there is a positive cash flow (ie, enough to support a higher firebase plan), move from gh-pages to firebase static hosting, as they support url rewrites (see here) -- this will allow sharing to actually work.

This would resolve #41.

better readme

Build instructions, "what is this," link to relevant milestones, probably more.

allow reconnect for broadcast

basically, restrict all the content of the tournament object (except the public var) to if it's public or not. that way, the reading will still work and watch properly without closing, and tournaments can be broadcast-toggled at runtime freely.

allow for tournaments to be unlisted

otherwise people in the middle tiers could hit their viewer limit really easily.

Basically, there should be 3 states of sharing (currently there are 2): private, unlisted, and public. A private tournament is visible only to the people who have access to it. Unlisted and public can be shared via a link. Public tournaments also show up on a tournament list page, a la #15.

Issues with multiple buttons in firefox

When selecting an item in a table(Player, Event or tournament section), three option buttons appear on the top right of the table. When I click on them, they show the click animation but no event seems to fire(e.g. window appearing when clicking on the pencil for editing).

anonymous tournaments

not everyone wants to sign up - challonge allows you to try their bracket creator, so this should too.

There could essentially be an anonymous account or an anonymous node where all competitors are anonymous (meaning you simply put in a name and that's it - no ids, no scoring, no aliases, etc).

documentation

The wiki should have a sufficient amount of documentation, including images. All images related to this should be moved to an imgur album specifically for this (so I don't mix them up with other stuff).

Additionally, documentation should be very thorough. There should probably be pages for:

  • terms definitions
  • what each option/field is/does (and if it's optional)
  • how tournament creation works, and what some of the sample options mean (as well as some examples to show how they can be used together, for more complicated examples like FFA)

better bracket visibility

instead of having them floating free like they are now, use md-card and also have light borders inside of it

Embeddable bracket

There should be an iframe-embeddable bracket (preferably adding /embed at the end of the url). Options:

Options:

  • page scale: 0.5 - 4 (to shrink or enlarge the bracket)
  • show final results: above the bracket, display the winner, second place, and third place
  • show standings (make the bracket and standings in different tabs

When displaying this, it should display like so (assuming all options are on):

    First place
   Second Place
    Third Place
-----------------------
- Bracket - Standings -  (these are justified so they take up all horizontal space)
-----------------------
   [tab content]

Embeddable bracket themes

The brackets should have a lot of themes available. Usage of angular/material's existing theme system would be ideal.

Possible themes include:

  • Mango (the default theme)
  • Night (dark bg/etc)
  • Sky (blue colors)
  • Heart (pink colors)

... possibly plenty more.

Station numbers

The TO should be able to see and modify the station numbers of each round. It should work like the score editing directive, and it should be below the round number. Also, this does not have to be a number - it should just be a string.

Once set, this should be visible to all players. The "set station" placeholder text (or icon!) should only be visible to hasAccess people.

annotated view for brackets

show a listing in a popup (non closable by clicking outside) that shows the places in order from first to last

use tournament.results() for this.

Allow tournament reconfiguration

Don't let the player list change but allow the options to change. This should only be doable if the tournament has not been started, or has been reset (ie, no completed matches have happened). It should basically just take you back to the tournament setup screen.

add ELL scoring

formula is:

400(wins-losses) + x
--------------------------
                y

x = points of all opponents from all time
y = number opponents from all time

Possibly, make this a two-pass algorithm (also, abstract it so the score function isn't called IN a loop, the score function does the necessary looping). The base "score" for a person is calculated by 400(wins-losses) and this is handled in the first pass. Then, the "final" score is calculated by doing the + x/y stuff - you always use the original score when adding to another persons score.

fix social links

currently they don't work, probably due to the hashbang.

since we need a url shortener anyway:

  • get a domain
  • use bitly (custom domains are free apparently)
  • store the shorturl on the tournament object - maybe generate it when the tournament itself is generated so there are no strange permission errors.

This can be done easier when #58 is done, also.

add a page with all tournaments on it

this would allow for easy tournament browsing for the currently live tournaments

this would also require a /tournaments node on firebase to allow for finding of public tournaments

alternatively, do what is done with sharing - have a list of public tournaments on a root node and just link to the tournament to get the relevant data (things to show: number of competitors, round progress [current rounds/max rounds], who it's hosted by, etc).

implement FFA

FFA should have a team size variable and a toggle between:

  • advancement # variable (advance X players / round)
  • knockout # variable (knock out X players / round)

For more advanced stuff (ie, special knockout rules, 5p -> 4p -> 3p -> 2p final), add Masters as a game variant

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.