Difference between revisions of "Developer documentation"

From WormBaseWiki
Jump to navigationJump to search
Line 86: Line 86:
 
*[[Administration:WormBase Development Environment|Development Environment]] - ''Building, Configuring, and Maintaining the WormBase development server''
 
*[[Administration:WormBase Development Environment|Development Environment]] - ''Building, Configuring, and Maintaining the WormBase development server''
  
== Administration  ==
+
= Administration  =
  
=== Updates ===
+
== Updates ==
 
* [[Updating The Development Server]] - ''Staging a new release of the database on the development server''
 
* [[Updating The Development Server]] - ''Staging a new release of the database on the development server''
 
* [[Updating The Production Servers]] - ''Testing, staging, and deploying the web app; updating to a new release of the database''
 
* [[Updating The Production Servers]] - ''Testing, staging, and deploying the web app; updating to a new release of the database''
  
=== Routine Administration Tasks ===
+
== Routine Administration Tasks ==
 
* [[Testing|Testing]] - ''Testing guidelines for the web application and hardware platform''
 
* [[Testing|Testing]] - ''Testing guidelines for the web application and hardware platform''
 
* [[Website:Profiling|Profiling]] - ''Profiling the web application, performance tuning, identifying memory and I/O bottlenecks, and historical benchmarks''
 
* [[Website:Profiling|Profiling]] - ''Profiling the web application, performance tuning, identifying memory and I/O bottlenecks, and historical benchmarks''
Line 111: Line 111:
 
* [[Building WormMart|Building WormMart]] - ''How to convert a WormBase AceDB database into WormMart''
 
* [[Building WormMart|Building WormMart]] - ''How to convert a WormBase AceDB database into WormMart''
  
=== Load balancing and Failover  ===
+
== Load balancing and Failover  ==
 
*[[Building Squid|Building Squid]] - ''How to build, install and configure Squid''
 
*[[Building Squid|Building Squid]] - ''How to build, install and configure Squid''
  
=== Monitoring and Crises Management ===
+
== Monitoring and Crises Management ==
 
*[[Crises Recovery Plan|Crises Recovery Plan]] - ''Everything breaks. Here's how to fix it.''
 
*[[Crises Recovery Plan|Crises Recovery Plan]] - ''Everything breaks. Here's how to fix it.''
 
* [[General_administration|General administration and monitoring notes]] - ''Partially redundant, sorry''
 
* [[General_administration|General administration and monitoring notes]] - ''Partially redundant, sorry''
 
*[[Monitoring services and servers|Monitoring services and servers]]
 
*[[Monitoring services and servers|Monitoring services and servers]]
  
=== Frozen Releases ===
+
== Frozen Releases ==
 
*[[Building Frozen Releases]] - ''The most current documentation on how to build a frozen release''
 
*[[Building Frozen Releases]] - ''The most current documentation on how to build a frozen release''
  

Revision as of 00:49, 24 December 2010

This page contains information pertinent to employees of WormBase.

Project Management

Web Site Documentation

Development Milestones

July 14 - July 30th

  • Coronate Czars
  • Coding standards and best practices for CSS, Javascript, API in place
  • Release new pages to production powered by the new architecture (classic view only)
    • Variation, Protein, Sequence -- and maybe -- Gene
    • Todd to develop <strikethrough>deployment strategy</strikethrough>, hosting environment, and proxy configuration
    • Abby and Xiaoqi to work up templates and markup specific to the classic view
    • Norie to make requisite API changes as needed

July 30th - August 31st

  • Finish API development of critical classes
  • Finish migration of prominent CGI-based pages to new architecture and release into production (classic view only)
  • Solidify look-and-feel of new site: site map, browsing paths, design patterns, navigation
  • UI features to address/develop
    • Enhanced, high-performance search
    • External URL handling
    • Error trapping and reporting
    • Authorization/Authentication
    • Customizability
    • Configurable two-panel selector
    • Incorporation of old site elements like BLAST/BLAT
    • Top-level species pages (/celegans, eg) and UI clues for distinguishing them

December 22nd, 2010

  • Begin private review of new site
  • Launch surveys on UI

February 1st, 2011

  • Preview new site to SAB

May 1st, 2011

  • Public preview

June 1st, 2011

  • Public launch of new site at International Worm Meeting

Coding standards and Best Practices

Architecture

Software platform

  • Application overview - A quick tour through the software platform, request flow, caching, etc
  • Configuration -- Application and view configuration: formatting and standards
  • WormBase::API -- The WormBase data model, maintained external to the web application
  • View -- Templating system, commom template elements, javascript, and CSS
  • Model -- The web application model; thin, glued to the external Model
  • Controller -- Overview of controller files and actions
  • Website:Software Platform -- The full software platform, including reverse proxy, webservers, and database node configuration
  • NFS at WormBase

Hardware platform

Administration

Updates

Routine Administration Tasks



Load balancing and Failover

Monitoring and Crises Management

Frozen Releases

Source Code Repositories

We use the distributed source code management system Mercurial. Projects are hosted on BitBucket.

How-To create, check out, and manage our repositories

Deprecated Documentation

The good word gone bad. Cruft. Lint. Maybe useful. Probably not.

Rearchitecture

  • HOWTO migrate a CGI - quick overview of how to migrate an existing CGI into a Model, Controller, and View. Sparse


Frozen Releases as Virtual Machines