lukeplant_python / lukeplant_me_uk / bibleverses /

Filename Size Date modified Message
..
scripts
templates
templatetags
tests
web
yaml
942 B
3.2 KB
1.1 KB
0 B
9.0 KB
978 B
8.6 KB
213 B
1.1 KB
2.7 KB
7.8 KB
2.0 KB
= Bible Memorisation Project =

Components:
 - Creation of Bible verse memorisation schemes
 - Web app for managing verse memorised so far

== Main concepts ==

This is a system to help me create Bible memorisation schemes for
myself and others.  The ultimate aim is to create lists of verse which
cover a large range of topics, and have a few comments about the
relevance of the supplied verses to different topics.  To produce this
list, a number of data sources are used.  All data sources are stored
as YAML text documents, which makes it very easy for unskilled people
to add to them, and to extend the capabilities.

The following sources are used:

- Verse list:
  - source: BibleMemorisationYaml
  - Stores a list of verse references and information about the
    categories it belongs to.  Each category entry has a level
    and a comment.
  - It also can store the actual text of the verse, for various
    different versions.  If these are missing, the ESV version
    can be automatically pulled in.  However, if a fraction of a verse
    is wanted, then the text must be supplied.

- Topic list:
  - source: BibleMemorisationTopicYaml
  - Stores a tree of topics that I am aiming to have memory verses
    for.

- Scheme list:
  - source: BibleMemorisationSchemeYaml
  - Stores a list of scheme definitions.  These are used in
    conjunction with the topic tree and verse list to build
    schemes, which end up as list of verses.

Once these sources have been parsed into memory, the 'read.py' module
arranges them into more useful Python data structures.  The 'build.py'
module contains functions for building schemes.  The 'update.py'
module is used to regenerate wiki pages/web pages from this data.

== Data ==

In my own system, this YAML is stored in a personal wiki.  A dump of
this data is found in ./yaml .  When this data is converted into
schemes, the resulting data is written to two places:

 - different pages in my wiki
 - HTML pages for publishing.

To enable other developers to work on this project, it is possible to
use a different 'backend' for retrieving the YAML from the ./yaml
directory instead of the wiki database.  It is also possible to
disable writing out to the wiki.  This is easy to do just by editing
the config.py file.

== Requirements ==

 - Django library on your PYTHONPATH somewhere
 - the parent 'lukeplant_me_uk' directory on your PYTHONPATH
   (this is needed due to the way that Django needs to be able to look
   for the 'templatetags' library used for rendering the HTML pages)
 - libsword and it's Python swig bindings, and the ESV module
   installed -- this is used to retrieve verses that are missing
   from the sources
 

== Usage ==

First, configure by editing config.py, as mentioned above.

The main front end is the 'update.py' script.  Just run:

 python update.py

This will build schemes, and update Wiki pages and/or HTML files.



== Web app ==

On top the above, there is a web app that enables people to keep track of
the verses they have learnt so far.  The app is written entirely in
Javascript for the front end, which dynamically extends the static HTML
files, and a Python CGI backend that speaks JSON to the frontend.
All the libraries and requirements for the web app are stored in the
cgi-bin/lib folder for ease of installation.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.