Auto-tools/Projects/BugHunter: Difference between revisions

 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Team =
= Team =
Bob Clary (bc) - Responsibilities include schema design and implementation, system architecture, data generation, database/webserver administration... all things data'ish.
Bob Clary (bc) - Responsibilities include all things data'ish.


Jonathan Eads (jeads) - Responsibilities include webservice/UI design and implementation... all things web'ish.
Jonathan Eads (jeads) - Responsibilities include all things web'ish.


Mark Cote (mcote) - Responsibilities include admin webservice/UI... all things admin web'ish.
Mark Cote (mcote) - Responsibilities include all things admin web'ish.


= Overview =
= Overview =
Line 59: Line 59:


==== Data Sources ====
==== Data Sources ====
A python module called datasource.py was used for all SQL/Database interactions (https://github.com/jeads/datasource).  Datasource provides an interface to MySQL that allows SQL to be stored in a JSON file with an associated name and host_type (master, read_only, etc...).  In order to send signals between data views portions of SQL had to be generated dynamically, this is managed by the datasource module to keep SQL munging out of the webservice and to provide a single location where all static SQL can be found (python/sisyphus/webapp/procs/bughunter.json).  This allows SQL statements to be treated as "stored procedures", all statements are assigned a name and are suitable for re-use by other scripts.
A python module called datasource was used for all SQL/Database interactions (https://github.com/jeads/datasource).  Datasource provides an interface to MySQL that allows SQL to be stored in a JSON file with an associated name and host_type (master, read_only, etc...).  In order to send signals between data views portions of SQL had to be generated dynamically, this is managed by the datasource module to keep SQL munging out of the webservice and to provide a single location where all static SQL can be found (python/sisyphus/webapp/procs/bughunter.json).  This allows SQL statements to be treated as "stored procedures", all statements are assigned a name and are suitable for re-use by other scripts.


==== JSON Config Files ====
==== JSON Config Files ====
Line 299: Line 299:


= Implementation =
= Implementation =
== Client ==
The following list of javascript packages were used as core infrastructure pieces in the bughunter client architecture.
* [http://jquery.com/ jQuery] - For DOM interactions
* [http://moo4q.com/ moo4q] - For OOP in jQuery.  All bughunter classes are built using this strategy.
* [http://datatables.net/ datatables.js]- This jquery plugin was used for all tabular display of data.  It's pretty awesome.
* [http://documentcloud.github.com/underscore/ underscore.js] - This javascript module was used for some algorithms/datastructures and maintaining function context in event binding... among other things.
* [http://thejit.org/ jit] - This data visualization javascript module was used for the Platform Tree representation.  It absolutely rocks for representing hierarchical/graph type data.


''Technical notes, plans, and designs detailing how the project will be realizedThe specifics of "how".''
* [http://people.mozilla.com/~mcote/bughunter/BughunterFunctionalSpecification.pdf UI specification], This was the original functional spec that was developed at the beginning of this project.  It's mildly entertaining to see how it deviates from the final product.


* [http://people.mozilla.com/~mcote/bughunter/BughunterFunctionalSpecification.pdf UI specification], by jeads
== Webservice ==
* [http://nginx.org/ nginx] - Used as the web server.
* [http://www.fastcgi.com fastcgi] - Used for running django.
* [http://nginx.org/ django] - Used as the web framework.
* [https://github.com/jeads/datasource datasource] - Used for encapsulation and dynamic generation of SQL with MySQL.
 
== Database ==
* MySQL
Confirmed users
353

edits