Intro to Hacking
Clone this wiki locally
Developing with the Open Siddur -- Join us!
If you can script, you can help, but take a look below in our section on Technologies to get a better sense of what we've been hacking with and where you're own expertise might help. The most important thing is your passion in helping make more Jewish liturgy and liturgy related work available to everyone to create the best Siddur for them. If that sounds like you then read on! (We're assuming you've landed here because you're at least interested in the source code behind the Open Siddur and familiarity with some common programming terms.)
We are actively looking for user interface coders. Our web application is being developed at the opensiddur-client project. Go ahead and start Building. Make contact with us via our webform, or if you're feeling bold, connect with us over at our technical discussion list opensiddur-tech.
If you'd just like to meditatively watch our code commits, we've got a list for that: opensiddur-dev (which sends automated messages after each code commit.)
If you're interested in transcribing texts see the instructions at the Open Siddur Client wiki (work in progress!).
Trying it out
So far, we've pushed ahead much farther on our server code than our user-interface. To look at some of the (user-facing) work that has been done already, check out our demos, and note our on our opensiddur-client.
To obtain the source code and build a local copy of the database and software, see Building.
If you are interested in client-side development, see the opensiddur-client project.
To learn what components are in the Open Siddur and locate their source code, see Architecture. The issue tracker serves as a TODO list. Note that the order of feature development listed on the milestones page is not set in stone. If you have a particular interest in any aspect of the project, please let us know.
A number of projects are marked with the independent tag. These projects do not require delving deeply into the source code, and may be good jumping-off points. They also have a smaller learning curve.
The following are helpful links for learning about the technologies we use:
XQuery 1.0 and 3.0
- The majority of the Open Siddur API is written in XQuery 3.0!
- eXist's Learning XQuery page.
- The XQuery Wikibook.
- The XQuery 1.0 specification
- The XQuery 3.0 specification
- The XPath 2.0 Functions and Operators specification
Saxon CE )XSLT 1.0 (browser side) and 2.0 (used on browser side with
- The TEI P5 Guidelines.
- TEI By Example
- The JLPTEI extension specification (currently undergoing review, documentation location will be updated).
There are also projects available that require Java or Python skills.
Coding style and documentation
The autogenerated XQuery-based API documentation is online.
Some parts of the project code are separable and usable on their own. These include:
And two components that are no longer used in the Open Siddur code:
- the Grammar Parser, which is available in XSLT and XQuery flavors, and parses text based on a grammar in an XML representation of EBNF.
- a script to turn any directory in a filesystem into a "backup" that can be "restored" into the eXist database, with control over excluded files, user and group ownership, and permissions.
The web application is being developed at the opensiddur-client project.
Note: This document is a draft. The information in it should be correct, but it could totally be improved. Please help us improve it.