icpctools / icpctools

The ICPC Tools - presentations, resolver, CDS, and others.
https://tools.icpc.global
Other
79 stars 30 forks source link

Award generator config file #112

Open clevengr opened 4 years ago

clevengr commented 4 years ago

It seems like every contest where we use the Resolver, the Resolver is a "potential/actual slowdown". That is, every Ceremonies Coordinator I know (meaning at least 3) is paranoid about getting the Resolver ready to run quickly. One of the slowdowns (though not the only one) is having to configure the "awards" through the Award Generator.

It seems like there should be a way for a Contest Admin to create, AHEAD OF TIME, a 'configuration file' identifying what awards -- including corresponding citations -- should be given. Then either the AG could simply be told "read this event feed and that configuration file and generate a new EF containing those awards", or else the Resolver itself could be pointed at an "award config" file and told to "resolve this contest and give those awards".

Clearly it's not trivial figuring out the general case for an award config file, given how many different contest award structures exist -- but it seems like it would be worth investigating.

deboer-tim commented 4 years ago

We could do something that's the equivalent of recording clicking on the existing award buttons, setting options on each one, and applying. I'm saying 'equivalent of' because it could be a config file that calls the same underlying methods to create awards, not necessarily a button-click recorded.

What I'm worried about is that some contests (definitely PacNW this year) have a few 'unique and/or late-breaking' awards that are not as simple as clicking on the existing buttons. e.g. plaques for top 3 at only 1 site (group) or top 5 teams are qualifiers but excluding teams from the same university (which in this case wasn't even in the data to be able to do programmatically).

@clevengr Would this issue be useful if it was based on the existing button function and you still had to manually add to or edit the awards it generated? If there are 'other buttons' we'd need as well I think we should track them independently, and as they're added they would also work with this feature.

nickygerritsen commented 4 years ago

For me it would already be super useful to indeed link it to the existing functions, since that is the only thing we use for BAPC / NWERC

deboer-tim commented 4 years ago

I noticed in the NWERC post-mortem that the CDS awards didn't match the DOMjudge awards, which is kind of obvious in retrospect because the CDS defaults to WF awards, which is unlikely to match any regionals even without the student/company or division splits. So two things:

  1. Whatever settings file we create for the Award UI should also work in the CDS (which shouldn't be hard; same codebase). i.e. you can import the same award settings file in either case.

  2. This may be a bit out there, but I'm wondering if it's possible to take this a step further and create an 'award setting json or yaml' that says things like 'we have 4 gold medals, 2 group awards with this citation pattern, etc' that's NOT specific to ICPC Tools. Potentially even an ICPC standard where you can define the awards for a contest outside of any given tool (maybe put it in the archive?) and wherever it needs to apply these (CDS, Award Util, resolver, DOMjudge, PC^2) it would apply based on this, and thus also give you multiple ways to verify the awards were applied correctly.

nickygerritsen commented 4 years ago

I like the latter. We should discuss it at the CLICS meeting perhaps?

Also: DOMjudge by default does the 'WF thingy' for awards, except the companies then.

clevengr commented 4 years ago

I agree this would be a good thing if we can come up with it...

john

On Wed, Nov 20, 2019 at 7:16 AM Nicky Gerritsen notifications@github.com wrote:

I like the latter. We should discuss it at the CLICS meeting perhaps?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/icpctools/icpctools/issues/112?email_source=notifications&email_token=ACGT543TU42XGXDOJVOPSCTQUVIENA5CNFSM4JMI43T2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEESKCRY#issuecomment-556048711, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACGT5432XOW647VEIGQ6GDLQUVIENANCNFSM4JMI43TQ .

deboer-tim commented 4 years ago

I've added it to the agenda for next meeting.

deboer-tim commented 4 years ago

Discussed on CLICS call. We'll start trying this out and see what format works, recommendation is to try to stick to an extended awards.json format if possible.

deboer-tim commented 4 years ago

Update: before the NAC I added support for award templates to both the Award UI (Load from Template) and CDS (admin UI > Finalize from Template, which looks for config/award-template.json). A template can specify all the awards that you want to give and allows you to configure awards in advance and apply all at once. An award template looks like this:

[{"id":"winner","citation":"World Champion"}, {"id":"gold-medal","count":"4","citation":"Gold Medalist"}, {"id":"silver-medal","count":"4","citation":"Silver Medalist"}, {"id":"bronze-medal","count":"4","citation":"Bronze Medalist"}, {"id":"first-to-solve-","citation":"First to solve problem "}, {"id":"group-winner-","citation":" Champions"}]

All lines are optional, citations can be edited, etc. The obvious gap to fix next is documenting what a template looks like and helping to create one.