1 / 14

ACM Bracket Manager

ACM Bracket Manager. Will Strohmeier. CIS 598: CS Senior Project. Outline. Goals Project Design Database Design Demo Testing Phase Future Work Questions. Goals. Provide the ACM club a way to quickly and easily manage brackets for LAN tournaments.

Télécharger la présentation

ACM Bracket Manager

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ACM Bracket Manager WillStrohmeier CIS 598: CS Senior Project

  2. Outline • Goals • Project Design • Database Design • Demo • Testing Phase • Future Work • Questions

  3. Goals • Provide the ACM club a way to quickly and easily manage brackets for LAN tournaments. • Do this through a web application that can be moved to the ksuacmlanparty.info website. • Eliminate the time setting up the bracket and make progressing through the tournament easier.

  4. Project Design • Web Technologies • ASP.NET • PHP • Symfony • Actions • Templates • Doctrine • Challonge API

  5. Symfony Action public function executeMatches(sfWebRequest $request) { $c = new ChallongeAPI(‘555hano…duyh7n'); $id = $request->getParameter('id'); $this->id = $id; $matches = $c->getMatches($id, array()); $this->matches = $matches; }

  6. Symfony Template <tbody id="tableBody" > <?phpforeach ($matches as $m) { if ($m->state == 'open') { ?> <tr> <td><?php echo player_name($id, $m->{'player1-id'}) ?></td> <td>vs</td> <td align="right"><?php echo player_name($id, $m->{'player2-id'}) ?></td> <td align="center"><?php echo get_station($t->id, $m->id) ?></td> </tr> <?php } } ?> </tbody>

  7. Database Design: Bracket/Stations Doctrine – PHP Object Relational Mapper schema.yml: Brackets: actAs: {Timestampable: ~} columns: tourney_id: {type: integer} num_stations: {type: integer} Stations: actAs: {Timestampable: ~} columns: tourney_id: {type: integer} station_num: {type: integer} match_id: {type: integer} Stations tourney_id station_num match_id Brackets tourney_id num_stations 1 0-*

  8. Doctrine Queries: $b = new Brackets(); $b->setTourney_id($id); $b->setNum_stations(0); $b->save(); Doctrine_Query::create() ->update('brackets b') ->set('b.num_stations', '?', $num) ->where('b.tourney_id = ?', $tid) ->execute(); Doctrine_Query::create() ->delete() ->from('stations s') ->where('s.tourney_id = ?', $id) ->execute();

  9. Demo

  10. Testing Phase: • Held a test run on April 27th at the console ACM LAN Party. • At the LAN we used the Bracket Manager for two tournaments • Brawl (45 people) • Naruto (16 people)

  11. Problems: • No bulk add for participants • No auto refresh on stations page • Better organization of current match list • Sluggish at times • Hard to find people for the match

  12. Added Features • Bulk add users • Auto refresh Stations page

  13. Future Work • Account system • Expand Database • fewer API calls • Better ordering of current matches • Text participants when their match is up

  14. Questions?

More Related