Web Team Interface Upgrades - pc2ccs/pc2v9 GitHub Wiki

This page documents upgrades and fixes which are needed for the Web Team Interface Implementation.

High Priority Tasks

  • WTI should enforce submission file size limit in WTI-UI front-end code. (It may already do this, but I don't think so...)

  • WTI should display the current contest time (contest clock) on the team screen.

  • WTI shouldn't attempt to start a PC2 server (it appears maybe it does this...)

  • Add a confirmation dialog to the "logout" button (currently, accidentally clicking "Logout" simply throws the user out).

  • BUILDING the WTI system on Linux (Ubuntu 18.04) fails, due to missing libraries. (A build created on a fully-configured Eclipse system on Windows 10 does run correctly on Ubuntu 18.04; the problem here is that BUILDING the system fails on Ubuntu 18.04.)

  • Add RunID to the Runs Table. Also SiteID?

  • Add ClarID to the Clars Table. Also SiteID?

  • Add name of SUBMITTED (Main) FILE to Runs Table.

  • Fix the problem where refreshing a page (e.g. F5) results in automatic logout/restart

  • Marking a run "Deleted" and "Notify Team" in the PC2 Admin causes the WTI to display a "Run Results Received" popup -- but it contains NO indication of the fact that it is due to a "Delete" action.

  • The WTI "Runs" table does not respect Deleted runs (that is, it displays runs which have been marked as "Deleted" in the PC2 Admin. Possibly a problem with the pc2api? Or with the /runs endpoint where it should be filtering such runs but maybe isn't?

Additional Tasks

  • Add support for httpS

  • "Select Problem" and "Select Language" (on the "Submit Problem" popup dialog) should show a "Contest is not running" message when the contest is stopped.

  • Don't lock up Team Login GUI when contest is not running

  • Add "configurable" banner, like on Fat Team Client

  • WTI currently allows submissions, and gets back "Yes", when the contest is over (probably only if the contest clock is still running, but still...) (Actually, perhaps this is correct behavior: if the contest has not been "stopped", should a team still be allowed to submit? Maybe so? )

  • The Submit Problem and Language drop-down lists do not automatically update when a new problem/language is added (it requires "Cancel" and then pressing "Submit Problem" again). Minor issue... maybe not worth fixing...

  • Starting the WTI-API Web Team Server and logging in as a team generates the following:

    WARN org.eclipse.jetty.util.ssl.SslContextFactory.config - No Client EndPointIdentificationAlgorithm 
     configured for SslContextFactory@5b2db5a4[provider=null,keyStore=null,trustStore=null]

This is probably because the default for Jetty is to require endpoint validation (that is, to require clients to provide SSL certificate info). According to https://github.com/eclipse/jetty.project/issues/3049:

"Alternatively, you could make that warning go away by just declaring a 
EndPointIdentificationAlgorithm (such as HTTPS) on the 
SslContextFactory.setEndpointIdentificationAlgorithm(String)"

It's possible however that this would require team clients to be set up with Auth Certs... Need to look into how WTI-API is using (or not using or mis-using) authentication.

  • Currently, WTI-API disables console logging by default. Method Logging.enableConsoleLogging() can be called to turn on console logging, but this can only be done by making a code change (specifically, by changing the intial value of Logging.enableConsoleLoggingAtStartup to true). There should be a user setting to enable/disable console logging, changeable at runtime.

  • The PC2 API is outputting log information to the console; it doesn't seem like it should do that. Perhaps there is some "default console logger" attached to the root (parent) of the Logger class being used by the PC2 API? (See https://stackoverflow.com/questions/2533227/how-can-i-disable-the-default-console-handler-while-using-the-java-logging-api)

  • The pc2v9 build/package XML files which compile and run the pc2v9 JUnit tests should also compile and run the WTI-API Junits. This requires (something like) the following:

Add a target "archiveSkipTests" to the packageWTI.xml file; when pc2v9/package.xml is running its own "archiveSkipTests" target then it should invoke the "archiveSkipTests" target in WTI-API/packageWTI.xml. This will involve somehow passing the "RUN_NO_TESTS" property to packageWTI.xml. (Note: packageWTI.xml is currently invoked from pc2v9/build.xml, as part of build.xml target "jar". This is probably where the RUN_NO_TESTS property needs to be passed (or not, depending on whether build.xml is using RUN_NO_TESTS.) Note an additional complication: some of the WTI-API JUnit tests require a WTI Web Team Server to be running...

  • WTI-UI does not work properly in Internet Explorer (Version 11.778.18362.0). Specifically, a user can login and can submit runs and clars which get properly received by the PC2 server, but the RESPONSES to the submissions and clars do not display in the response "pop-up" dialogs and they also do not appear in the Runs/Clars tabs. (This test was run with IE on a Windows 10 machine connecting to WTI-API on a Linux machine connecting in turn to a PC2 server back on the Win10 machine. Logging out and back in using IE does not fix the problem -- the Runs and Clars are still not visible (although clars sent to "All Teams" earlier ARE visible).
    • Chrome Version 81.0.4044.113 on Windows 10 in this exact same configuration works correctly.
    • It also works correctly using Microsoft Edge 44.18362.449.0 on Windows 10.
    • It also works correctly using Firefox Version 69.0.2 on Ubuntu 18.04.