This document details the operation of the database and associated website for the UG4 and MSc projects, used by both student and coordinator. Some (admin) user-facing documentation is available on computing.help.
The site is a basic, and somewhat esoteric PHP web front-end to a database
of project proposals. Its authentication is handled by Cosign and allows any
authenticated user to access its pages, propose projects or request project
preferences. A limited number of users (simply matched by
REMOTE_USER name) are admins and can use the administrative
functions of the site to allocate students to projects.
The projects database is accessed via
spadina). Its database is hosted on
pgresearch, and depends on the PostgreSQL service on that
The service is due a refresh, since both database and code are somewhat fragile. The current 'refresh' to codebase and host fixes many original bugs and holes, and should allow the service to be manageable for the time being.
Invalid queries caused by mangled SQL (usually from spiders' page requests)
are still possible, though reducing, and although most do not present an
injection risk, for safety these are being squashed (semi-proactively) as
reports arrive. If you would like to be included in these, the
*_config.php files allow for an administrative email address.
To compensate for the previous multiple-site, multiple copy system, the current release makes heavy use of apache redirects; these are essential for the operation of the site:
Code for the projects web can be found in the Informatics SVN repository.
Details are in the
whose inclusion is the minimal required configuration to enable a projects web
Additional server configuration, such as altering the name or port of
the vhost, or the file location, can be found in the header. Default file
Service configuration is performed by editing the
[root]/data/*_config.php files; permanent changes may be
committed back to subversion for safety. It is planned that these may be fully
managed via LCFG in time.
Changing the coordinator should be performed in the appropriate
Amending the admin list can be performed either by amending the list
in the appropriate
*_config.php file or (preferably) by granting
projdb/[ug4|msc]/admin capability (as required). Note that
the capability list is defined in the configuration file which is ultimately
the master access control list.
Configuration tasks which support must perform under normal circumstances consist only of changing the coordinators for UG4 or MSc and/or changing the administrative access list. It is anticipated that some of this configuration will be moved back to the database itself in due course. The config files should be documented in a self-explanatory way for those tasks that require it.
The only data produced by the site, and the only source on which it relies
can be found in its database, presently residing on
most recent SVN revision should track this if it changes.
Backup of the service is covered by:
Restoration of the service involves:
projectsDNS alias to the new server, and ensuring firewall rules permit its http/https visibility
PROJECTSDB_[HOST|PORT|PATH]definitions in the new server's header
*_config.phpfiles reflect the current configuration.
The system is mostly reliable in operation but in rare cases project submissions can go astray or be overwritten. In these cases it is often possible to restore data from the SQL logs which are written to the projects web error log. You can follow an example of recoving a project in the comments to RT65364.
This is restricted to internal, authenticated users, but external examiners, for example, can be granted access by adding their addresses to the "staffcaps" list in the configuration file:
This is an interim solution until iFriends can be given access to the appropriate "project staff" capability.
Please contact us with any comments or corrections.
Unless explicitly stated otherwise, all material is copyright The University of Edinburgh