Software Development Overview
Table of Contents
Software Development Overview
All BioGRID-associated projects currently and will always make use of open source and openly available tools, programming languages, and databases for all software engineering projects. The following is a brief overview of the BioGRID development tools and process.
Programming Languages
Software engineering projects at the BioGRID primarily make use of the programming languages PHP, Python, and Java. Each of these languages are open source and freely available to anyone. PHP is most frequently used as our primary language for web application development such as the web user interface for the BioGRID. Python is utilized heavily as our back-end processing language for tasks such as the automated building and maintenance of our monthly updates and the updating of our annotation resources. Python is also heavily used for XML processing and output related tasks. Java is used for the processing of many major back-end and front-end processes, our API development, and was also used entirely to develop the Osprey Network Visualization System and our Cytoscape Plugins.
Database Management System
For all our relational database management system (RDBMS) requirements, the BioGRID tools and websites use the latest version of the open source MySQL database. MySQL is a powerful database platform that is used to store everything from our major annotation resources to our monthly BioGRID updates. MySQL also powers our Interaction Management System software which is the primary means for curation and maintenance of BioGRID interaction data. For more information on our existing database architecture, check out our Data Model.
Tools and Resources
The BioGRID makes extensive use of existing tools and software for some aspects of our development. For maintaining tracking of our source code we make use of the GIT version tracking system. For all of our documentation and help resources, we use the DokuWiki system (including for this documentation you're reading right now). For many of the fancier graphical components of our websites, we make extensive use of the jQuery JavaScript library. For development, BioGRID software engineers use tools like Eclipse, XEmacs, and VIM for source code creation and maintenance.
Hardware and Backups
All BioGRID websites and databases run on Linode high performance server hardware running out of Dallas, Texas, USA. All of our servers are currently running CentOS Linux and Ubuntu as our core operating systems, both of which are free and open source operating system platforms. On each web server, we utilize the open source Apache 2.0 web server, Nginx web server, and the Apache Tomcat web server to host and run our applications. All of our backups (nightly, weekly, and monthly) are performed via automated scripted procedures using Python and RSync and are archived to multiple locations including offsite tape based backups.
Bug Tracking and User-Base Interaction
For Bug Tracking of programming errors and new feature requirements, the BioGRID uses the free Trello platform. For communication from users, we maintain a shared email account with the free mail resource GMail. We also maintain a Twitter Account where users can message us directly. We are currently working to expand these resources to include an open mailing list maintained by Google Groups.