AuburnACM / auacm

The Auburn ACM Website
Apache License 2.0
15 stars 3 forks source link

Competition Mode #48

Open WilliamHester opened 8 years ago

WilliamHester commented 8 years ago

When a user is participating in a competition, they should be allowed to enable "Competition Mode." It would limit the site to only displaying the problems that are in the competition and make it easier to select the problems from the judge. Kattis has something like this, but not exactly.

WilliamHester commented 8 years ago

Implementation might actually not be that hard. If we just use a competition ID as a query parameter on any of the URLs, then we might be able to filter the list of problems using a directive. All we'd have to do then is add a banner to index.html, notifying the user that they are in competition mode.

BrandonLMorris commented 8 years ago

What would be the cost/benefit ratio of changing the way were currently handling competitions? Rather than checking against submission times and open competitions, I mean. I don't know if there is a better way, I just wanted to bring it up.

WilliamHester commented 8 years ago

To be clear, this wouldn't require changing that, but changing that would be interesting. The difference is that we'd have to add some sort of global state to the server and an event loop or thread that would check when a competition is over to update the state. I don't see much of an advantage to doing it this way, but I could be persuaded if there was a good reason.

BrandonLMorris commented 8 years ago

Yeah I can't think of an obviously better way. On top of that, it would have to take into account that problems solved inside a competition should show up as solved after the competition.

Idk, maybe if we had some kind of competition-specific judge instance? It would evaluate the same way, but only accept submissions from participants on problems in the competition. That way it would have to figure out if a submission is inside a competition or not. It's probably not worth the effort (at least not right now).