Summer of Code Student Guidelines

From OpenJUMP Wiki
Jump to navigation Jump to search

Below is a list of guidelines for the 2010 Google Summer of Code students working on OpenJUMP under the OSGeo umbrella. These guidelines are designed with the goal of ensuring students have both a productive and enjoyable summer.

Guidelines

  • Summer of Code students will host their code in the JPP Subversion Repository hosted at SourceForge. Assistance with access to the repository can be obtained at the OpenJUMP developer mailing list.
  • Students will develop the source code for their projects in "modules". Each module will encapsulate a core functionality for their project. Every module should contain at least one, and possibly two or three, Java packages.
  • Each module should be completed before starting work on another module. This will prevent a summer that results in a lot of unfinished code. We'd rather have 10% of a project that worked than 90% of a project that doesn't work. For the purpose of this section a complete module will have comprehensive Javadoc comments and unit tests. Supplemental documentation explaining how to use the code with simple examples is encouraged.
  • As a general rule low-level modules should be developed before high-level modules. In a good design it will be possible to use low-level modules independently of high-level modules, like graphical user interfaces.
  • At the end of each week the assigned mentor will perform a brief review of the source code and documentation created by the student during the previous week. Suggestions will be made by the mentor, and the mentor and student will agree on the tasks to be handled during the following week.
  • The student, with his mentor's assistance, will make regular releases of working code, unit tests, and documentation for each completed module in their project.
  • Each student will maintain a change log to track their work. This will be very helpful for the mentors that need to track their progress. The format of the change log can be determined by the student, though it should be consistent.