Web software

BioQ is a web application based on LAMP (Linux-Apache-MySQL-PHP) architecture. The code can be found our Subversion server.

Contents

Program Flow

This shows roughly how the key components of the web application interact.

 

Files and Directories

CommonClass.php

Common subroutines.

config_utility_functions.php

Peter: describe

doc.php

The "help" link in the top right.

index.php

The BioQ main page.

session.php

Used for those PHP programs that require sessions.

template_config.php

This needs to be saved as config.php and then revised according to the particular installation. This is basically the case for any file in Subversion prefixed with "template_".

dbdoc/

The code for BioQ::Documentation features (see Documentation Tools). It is derived mainly from the dbDoc application that goes with dbSNP-Q. Because of this, some of the code that should really be in the parent directory, such as some JavaScript files and maybe some PHP files, are down here. For example, all the jqGrid files are are in dbdoc/.

mysql/

Contains some utilities for setting up MySQL.

perl/

Contains the perl programs used by BioQ, such as bioq_query.pl and dbdoc_util.pl.

query/

Contains code for BioQ::Query features. The web interface is contained in submit.php.  This uses query.php via an Ajax call. The query.php script then call bioq_query.pl that does all the database work.

JavaScript

JavaScript code is usually saved in a directory named js. Frameworks and modules, such as jQuery, are located in js/external.tar.gz. The .gz files are saved in Subversion bust must be extracted for use with the application. The CSS and JavaScript files for the main page, index.php, are located in the dbdoc directory.

JavaScript modules used in BioQ

BioQ uses the following external JavaScript modules:

Note that some of these modules also require their own CSS files.

jQuery

jQuery is a JavaScript framework used to control many aspects of the web user interface in BioQ. 

jQuery UI

jQuery UI is an extension of jQuery that provides custom themes and a suite of user interface features. jQuery UI is built into BioQ by going to their download site, selecting a theme and which widgets you will need, and then downloading the tarball generated by their web tool. The current configuration is as follows:

  • Version: jQuery UI 1.8.2 for jQuery 1.4.2 (the current version as of 2011-07-20 is jQuery UI 1.8.14 and jQuery 1.6.2)
  • Theme
    • The theme is based on "humanity", specifically it's "humanity-mod-2" as of 2011-07-20.
    • The modification to the stock humanity theme are
      • Change Font Family to "MS Trebuchet" in  "Font Settings"
  • *UI Core: *Core, Widget (I think)
  • Interactions
    • selectable: was being used in the query page (query/submit.php), but maybe no longer?
  • Widgets
    • autocomplete: used in the search bar
    • button: used in many places
    • dialog: I think this is being used in messages, such when a query is executed with no data
    • tabs: used on the query page, such as Simple Query/Custom MySQL Query

jqGrid

jqGrid is a jQuery plugin for displaying interactive tables.

  • Version: as of 2011-07-20 we're using jqGrid 3.7.1
  • Theming: Note that jqGrid takes advantage of the jQuery UI theme.

CSS

Style sheets are stored in a directory named css.