/project2

WDI project 2 - scarlet.gg

Primary LanguageRuby

#Scarlet.gg

Scarlet.gg a tournament management website built in Rails. Currently, users can create and join teams, and participate in tournaments via teams.

##Technologies Used

  • Ruby on Rails

  • Devise

  • CanCanCan (included, minimal-to-no-implementation)

##Installation Instructions:

Visit scarlet-gg.herokuapp.com to test.

##Discussion The original motivation for this project was to design a simpler version of some of the past eSports websites I had worked with. Knowing that the cstarleague.com website was built in RoR gave me confidence that I could build something similar, if only to gain insight on how something like that could be built.

###Planning: I realized very early on that the user stories I had planned out over the weekend were far too large in scope. More frequently than not, I would reread a user story only to realize it implied additional functionality which I hadn’t even considered building yet.

###Implementation: The MVP for this project was a 3-model application - Users, Teams, Tournaments. The original vision was to allow Users to create a Team to join a Tournament. In this model, teams could only join a single tournament at a time, and users could only create teams that were directly associated with themselves.

Improving upon this necessitated the introduction of two additional models - Registrations and Memberships - join tables which bridged Tournaments and Teams, Teams and Users, respectively. This is the feature that I spent the most time thinking about and working on (and hence, the one I’m most proud of).

###Future Plans:

  • Authorization: I started implementing CanCanCan, but broke something earlier and

had to spend time repairing it. As such, there are a few files/lines of code that could afford to be deleted from this branch and moved into a development branch.

  • Forms: Slightly related to authorization, I’d like to fix my forms. Currently users

are allowed to do almost anything so long as they’re logged in, and there aren’t a lot of rules in place for the form data itself. This would probably be a very quick fix.

  • AWS/Image Hosting: Probably something easy I could do over an evening so I don’t

have to keep using Nick Cage placeholder images.

  • Self-referential Joins and other Models: My original ERD featured Matches between

Teams, which also belonged to a Tournament somehow. I imagine this could be done via Brackets as a join-table (i.e. Matches > Bracket - Tournament). Eventually, even some logic could be implemented to organize Matches in their Brackets - order of Matches, Rounds, etc.

I’d also add Profiles which would allow them to see their Teams, Tournaments, and stats.

###Other Comments: I made some very poor life decisions before beginning work on this project, so my deliverables definitely don’t match my ambitions.

Nevertheless, it was all worth, and I’m happy I managed to make it through.