Skip to content

PC2 Project Organization

John Clevenger edited this page Dec 7, 2020 · 7 revisions

The code for PC² Version 9 is maintained in a Git repository. We use the Eclipse IDE for development, so much of the project organization reflects the structure of a typical Eclipse project. (Note that nothing stops you from using your own favorite IDE instead of Eclipse to work on PC² -- but you do need to be aware of -- and hopefully, will maintain -- the project organizational structure since the PC² maintainers are unlikely to accept Pull Requests which alter the project structure.)

In particular, the top level of the repo consists of

  • a src folder containing the entire PC² Version 9 source code tree
  • a test folder containing JUnit tests used for regression testing when changes are made
  • folders holding the set of libraries used by the system
  • a .git folder holding the Git settings for the project
  • a .settings folder holding the Eclipse settings used when the project is worked on under Eclipse
  • a bin folder holding scripts which are used to invoke various PC² V9 system components
  • a build folder holding the Java class files generated when the Eclipse PC² V9 project is rebuilt
  • a data folder holding the data used by the PC2V9 system at runtime (e.g., XSL files used by the Scoreboard
  • a dist folder holding the distributable files containing the PC² V9 runtime system
  • a doc folder holding the documentation distributed with the system (including both the source documents and the PDF files which are actually distributed)
  • a dtd folder holdingDocument Type Definition files for the system
  • an folder holding logos and other images used by the system
  • an internal folder holding internal documents (things utilized by the PC² Development Team but not generally distributed outside the team
  • a projects folder holding various "separate projects" which are components of the PC² V9 system (for example, the EWTeam web client is contained here
  • a samps folder containing a variety of sample contest configurations, useful scripts, source files for solutions to problems in a variety of languages, and other generally useful sample information.
  • a support folder containing a variety of scripts such as wrappers for languages not yet internalized in the system
  • a testdata folder holding data which is used by the JUnit tests in the test folder
  • a testout folder which is a scratch space that various JUnit tests use for writing temporary output
  • a vendor folder holding a variety of third-party vendor libraries used by the system

The top level of the repository also holds a variety of individual files used for various things:

  • "dot-files" holding configuration for various tools
  • XML files which can be run by Ant to generate various things, including: ** build.xml -- compiles the entire PC² V9 system and generates a new distribution ** createVersionAndJar.xml -- creates local copies of the pc2.jar and Version files for debugging purposes ** package.xml -- run unit tests, create pc2.jar file, pack/create distribution, .zip and .tar.gz, files
  • realm.properties -- a file used to manage user accounts and passwords for the PC² V9 webserver

In addition, running the PC² V9 system within Eclipse, or executing any of the XML files used to generate various system components, will typically generate a variety of additional files under the PC² V9 project in Eclipse. For example, running createVersionAndJar.xml will generate a new Version file.

PC2 Logo

Clone this wiki locally