None of that is really very effectively documented. It has essentially been a shoe-string project, with things getting done as they come up. Sometimes the design of the system reflects this. However, the following information is probably useful:
1. The principal development language is Python (though 0.5 has a lot in Javascript, and this can probably only go up).
2. The principle UI libraries are wxPython and wxWebConnect (where WebConnect is embedding the Mozilla Gecko engine underlying Firefox 3.6 - so basically HTML, Javascript and CSS).
3. Most support for Biblical content comes from the SWORD library.
Major areas of the system include:
* swlib/pysw.py: A slightly simplified wrapper around the SWORD Python bindings, used anywhere we are parsing verse strings and so forth.
* backend/: Contains most of the remaining logic wrapping the SWORD bindings. It includes custom filters for OSIS and ThML modules (for turning these into HTML), and the BibleInterface class which we use to manage all the state of which is the current module (it contains different instances of the Book class, so that you can refer to e.g. biblemgr.dictionary or biblemgr.bible and get the current dictionary or bible). This does restrict us to having only one current version of all the different book types, which is a design problem, but I think at least at the moment our UI constrains us to work this way too, and so it's not something we need to deal with. There are matching
* css/; js/: CSS and Javascript files included in the generated HTML.
* search/: Everything to do with searching, including the custom, regular expression based search engine.
Other commonly used variables/classes (some of them unfortunate) are guiconfig.mainfrm (which contains the single instance of the main application window, and probably shouldn't be used in a lot of the places where it is used) and DisplayFrame (which is our wrapper around the wxWebConnect HTML control).
I can answer lots of other questions, but at the moment some of the design is not as clear as it might be.
If you are on Windows, a good way of getting started is to check out the source code (see
http://code.google.com/p/bpbible/source/checkout), download the Windows binary, and then copy all the pyd and pyc files and the xulrunner directory into the base of the source directory. Then make sure you have Python 2.6 installed and run it with that version of Python and it should all work fine (though I haven't actually done that for a while).
I've added you to the project committers list. Basically, that means you are able to check out a read-write version of SVN and to commit if you need to. It doesn't mean that we expect you to start committing immediately (I know there are some on that list who have never actually committed anything). It's just that this project is small enough that we don't have a lot of need for formal control.
Thanks,
Jon