I and cannor147, as students of ITMO University, joined the Codeforces team in June. From June to October, we mainly dealt with the development of the Polygon platform. In this post, we would like to present to you a list of what we have done during this time. This list does not include minor bug fixes or any improvements that are invisible to users.
PIN codes for problems and contests
Sometimes very important contests and problems are being developed in Polygon. In such cases, a leader of the jury may be worried about data leaking. For example, it can be so because of the weak password of another member of the jury. PIN code is an additional factor of confirmation the access for the problem or contest and it can be set up only by the owner. It is assumed that the PIN code will be sent in another secure way.
There is a link Create Pin for the owners in the contest interface:
If a contest or a problem has the PIN code, you need to type it before continuing.
You can manage the PIN code of the problem in the tab Manage Access in the problem interface. The owner can create the PIN code or copy the PIN code from a contest that contains the problem.
If you use Polygon API, there is a way to send requests for working with problems or contests, that have the PIN code. You have to provide a new additional parameter “pin” in your requests.
Groups of contests
Polygon grows up and the number of contests in Polygon grows up too. Sometimes you want to group some contests. For example, it seems convenient to group contests from the same programming workshop. Now in Polygon you can group some contests for faster management of the access rights for them.
Search by contests
The search by contests was added on the page Search.
A problem in several contests
Sometimes several contests have one problem, for example, if it is an educational problem. The attempt to commit changes for such problems resulted in updating a modification time for all its contests. Sometimes it seemed inconvenient because all its contests were at the top. Now you can choose contests that will change their modification time after committing changes to their problem. So, old contests won’t be on the top in the Contests Page.
Contest Statement Builder
Sometimes you want to see prepared statements for all problems in the contests in one pdf file. If the problems have different and languages or some statements aren’t prepared yet, it was hard to build it. Now you can do it thanks for Advanced statements building in the contest interface.
Attaching files to contests
There is a new section Attachments in the Properties/Files page for the contests. You can save some files, which are connected to the whole contest here. For example, you can save the tutorial for the contest,unfreeze visualizer or memes.
Management of receiving emails for contests
After pressing a pencil icon you can enable or disable receiving notification emails about changes in the current contest.
Many improvements to issues support were made. Added the ability to view all contest issues by clicking on Issues from the contest interface.
The issue header displays more information now.
When changing an issue status, type or assigned user, an auto-comment is now generated (for example, [changed status to CLOSED]). There is no longer any need to write tedious "Fixed" on each issue when closing multiple ones.
View my issues
It became possible to view all issues related to the current user. To do this, click on My Issues at the top of any Polygon page.
Also, it became possible to view my issues in all available contests and tasks.
Resource advanced properties
Support for resource advanced properties (graders) has been improved. Now you can add files to the checker's and interactor's execution directory at runtime.
You can attach additional information on the solution by clicking on Note in the solutions list.
Even fewer mistakes when preparing problems!
Now Polygon checks that variable names are passed in read*s (readInts, readDoubles, ...) testlib methods in the validator, and if it is not the case, you will be shown a warning.
Improved statement warnings. For example, if the condition does not contain examples or the name of the task, Polygon warns you about this. It has also become harder to get confused with the quotation marks choice in the conditions (remember that in Russian and English different types of quotation marks are traditionally used).
Polygon API improvements
- problem.statementResources — view the statement resources list (for example, images in statements)
- problem.saveStatementResource — add or change a single statement resource.
Added the PIN code checking in the "pin" parameter for access to tasks and contests if it was set. This parameter must be added to all methods and requests.
You can find the full description of Polygon API here.
- The ability to add a test to the problem statement by clicking on the Example link directly from the list of tests without editing it.
- When creating a statement or a tutorial in a new language, it’s possible now to copy them from existing ones.
- Now you can copy tests of the checker and validator with their subsequent modification on the corresponding pages.
- Added email confirmation when registering in Polygon.
- Now, in the Review tab, you can also see the interactor's code if the problem is interactive.
- Now you can run all stress tests by clicking on the Run All Stresses link.