Design and development
Coding standards: The Scientific Web Applications group will provide coding standards for the developer to follow. This is partly because of the possibility of the group having to maintain or configure the code to some degree in the future. Code must be commented, down to at least the level of variables and function declarations. For PHP, use the PEAR coding standards for formatting your code.
Change management: Our Subversion revision control system must be used for code developed on projects hosted on our servers. Developers must log comments for commits.
Developers must contact us to get started with a Subversion account on our SVN server. We will provide them with a repository to use for their project. We will also provide more detailed help and guidelines on using the repository specific to their project.
More information on Subversion and SCM in general:
- The main Subversion website has information about the software, and has links to third-party SVN client software.
- Version Control with Subversion is the canonical reference manual for the software.
- Wikipedia: Revision control, Subversion
Portability: Please write your application to be portable, even if you think it will only reside in one place on the webserver. We need for it to be installable on a testing / staging server in addition to its final destination. We also need to be able to change its location in the future with a minimum of fuss. Therefore, there should be no hardcoded values that refer to filesystem locations, URLs, and so on. Please put configuration variables into separate configuration files, and make sure that these files can not be read by anonymous website users. Do not check configuration files with customized settings into the Subversion repository. Instead, make default configuration files with endings like ".dist" and check these in, instead. Make it so that the person installing your application needs to rename the ".dist" file to ".conf" (or whatever) and so that someone updating a working copy of the application will not overwrite the custom settings that they have put in the config file. We should be able to install your web application on our server by making customizations limited to your configuration files, and, perhaps, our Apache configuration. We should not have to modify your PHP code.
Documentation: User-level documentation is important, as is also documentation for the system administrators who have to install it and keep it running. Include instructions on how the software is configured to run on the server, the locations of configuration files, and so on. Documentation must be specific down to the following details:
- Document every program code file, and every application configuration file, with at least a full sentence describing what it does.
- In a web application, describe its input in detail, such as form fields on other pages that submit to it, and cookies upon which it relies.
- If the application has configuration variables, document each one.
- Describe how a user logs in and administers the web application (if applicable). This is in addition to how the system administrator sets up the application. Give information relevant to application-level administrators, as well.
- Document every user-level feature of the application.
- Document the formatting of all data files that go in and out of the application.
- Provide detailed diagrams of your database schema (if applicable)
Documentation as described above is a requirement for the Scientific Web Applications Group to accept the role of supporting your application!





