Difference between revisions of "Frontends:Tyndale STEP"

From CrossWire Bible Society
Jump to: navigation, search
m (Reverted edits by David Haslam (Talk) to last revision by Chrisburrell)
(Undo revision 8082 by David Haslam (Talk))
Line 1: Line 1:
The STEP project (Scripture Tools for Every Pastor) aims to build a study tool for pastors around the world. The software will be available on-line as well as distributed to pastors in poorer countries who, usually, would not be able to afford commercial software.  
+
The '''STEP Project''' ([http://www.theologyontheweb.org.uk/step.html Scripture Tools for Every Pastor]) aims to build a study tool for pastors around the world. The software will be available on-line as well as distributed to pastors in poorer countries who would usually not be able to afford commercial software.  
  
 
+
== Aims & Architecture ==
== Aims & Architecture Architecture ==
 
 
=== Aim of the STEP project ===
 
=== Aim of the STEP project ===
 
The intention of the STEP project is to have a bible tool that will be available for a wide number of platforms:
 
The intention of the STEP project is to have a bible tool that will be available for a wide number of platforms:
 
* multiple platforms: including off line and online
 
* multiple platforms: including off line and online
* multiple operating systems, including mobile O/S
+
* multiple operating systems, including mobile OS
 
It is accepted that the mobile versions of the STEP project will access a web-based version, due to the variety of platforms and restrictions in development capabilities (for e.g. no Java platform on iPhones).
 
It is accepted that the mobile versions of the STEP project will access a web-based version, due to the variety of platforms and restrictions in development capabilities (for e.g. no Java platform on iPhones).
  
Line 27: Line 26:
 
=== Overall Architecture ===
 
=== Overall Architecture ===
 
To further the aim outlined above, the choice of technologies is as follows:
 
To further the aim outlined above, the choice of technologies is as follows:
* Embedded Jetty (for the stand-alone applications)
+
* Embedded [http://en.wikipedia.org/wiki/Jetty_%28web_server%29 Jetty] (for the stand-alone applications)
* Embedded JavaDB* (for web and standalone) ensuring common data access throughout.
+
* Embedded JavaDB<ref>If possible, the Embedded JavaDB module dependency will be removed in time.</ref> (for web and standalone) ensuring common data access throughout.
 
* JSword for Bible and Module access
 
* JSword for Bible and Module access
 
* GWT (Google Web Toolkit to faciliate the UI development for Java developers)
 
* GWT (Google Web Toolkit to faciliate the UI development for Java developers)
Line 34: Line 33:
 
As a result of the above choice, we have a 100% Java application, and are able to run it as an online and offline application.
 
As a result of the above choice, we have a 100% Java application, and are able to run it as an online and offline application.
  
<nowiki>*</nowiki> If possible, the Embedded JavaDB module dependency will be removed in time.
+
<references />
  
 
=== Description of the external libraries ===
 
=== Description of the external libraries ===
Line 55: Line 54:
 
* Emma code coverage plugin
 
* Emma code coverage plugin
 
* A JDBC client for querying (for e.g. SQL Squirrel)
 
* A JDBC client for querying (for e.g. SQL Squirrel)
 +
 +
 +
[[Category:SWORD Frontends|TyndaleStep]]
 +
[[Category:JSword|TyndaleStep]]

Revision as of 17:33, 12 April 2010

The STEP Project (Scripture Tools for Every Pastor) aims to build a study tool for pastors around the world. The software will be available on-line as well as distributed to pastors in poorer countries who would usually not be able to afford commercial software.

Aims & Architecture

Aim of the STEP project

The intention of the STEP project is to have a bible tool that will be available for a wide number of platforms:

  • multiple platforms: including off line and online
  • multiple operating systems, including mobile OS

It is accepted that the mobile versions of the STEP project will access a web-based version, due to the variety of platforms and restrictions in development capabilities (for e.g. no Java platform on iPhones).

Intended features

Data

The data produced by Tyndale House, Cambridge, UK will be the main driving factor of development of this front-end. This new project offers a lot of development opportunities:

  • developing in writing a web-based front-end to JSword;
  • working with Tyndale House to help them produce and publish their data; and
  • enhancing the main Sword and JSword engines to cope with the new types of datasets.

Range of features

  • History modules (including genealogies, timelines, articles, etc.)
  • Geography modules (maps, integration with Google Maps, Google Earth, overlay of historical maps onto)
  • Linguistics
  • Parallels
  • Translations (transliterations, interlinears...)

The above features are just a sample list of the intended feature set.

Overall Architecture

To further the aim outlined above, the choice of technologies is as follows:

  • Embedded Jetty (for the stand-alone applications)
  • Embedded JavaDB[1] (for web and standalone) ensuring common data access throughout.
  • JSword for Bible and Module access
  • GWT (Google Web Toolkit to faciliate the UI development for Java developers)

As a result of the above choice, we have a 100% Java application, and are able to run it as an online and offline application.

  1. If possible, the Embedded JavaDB module dependency will be removed in time.

Description of the external libraries

  • Jetty is a java container that will be used in the embedded mode for serving local web pages. On a server, STEP can be deployed to a Tomcat or Jetty server
  • JavaDB or Apache Derby is an RDBMS written in Java, that can be run in server mode as well as embdeded in the VM. If used in the embedded mode it starts up upon the first request
  • JSword needs no introduction - see {link} instead
  • GWT allows developers to code the UI in Java (and XML - GWT 2.0) and at compile time the UI components are compiled into javascript, which is specific to browsers and languages)
  • Dependency Injection
    • Server-side: Guice (on the server)
    • Client-side: Gin (similar to Guice but for client-side code)

Development environment

Software packages

  • JavaDB (included in Java 1.6)
  • JSword project checked-out (at the moment)

Eclipse

  • Subversion eclipse plugin
  • GWT eclipse plugin
  • Emma code coverage plugin
  • A JDBC client for querying (for e.g. SQL Squirrel)