github.com/balain/bcv-kemal
1.0.0 / published Mar 12, 2025 / repository
Bible search and read web app written in Crystal
bcv-kemal
Bible search and display web app
Built using Crystal (programming language), Kemal (web framework), SQLite (database)
Features
- Interlinear search results
- Full text search: English, Hebrew, and Greek
- Provide your own Bible content
- No server required - uses sqlite database (local)
- Good performance - compiled code
- Query Greek and Hebrew by root/lemma
- Search for works with specific part of speech
- Strong's definitions - both popup and inline
- See difference, union, and intersection across prior search results
- Uses Bootstrap 5
Installation
- Install Crystal - https://crystal-lang.org
- Install Kemal - https://kemalcr.com
- Clone this repo
- Rename
.env-exampleto.env& update values to match your environment - Install dependencies -
shards install - Install just - https://github.com/casey/just (optional)
- Install watchexec - XYZ (optional)
- Set up the database - instructions pending
Dependencies
Crystal - required
- dotenv - https://github.com/drum445/dotenv
- sqlite3
- kemal
Optional
- just
- watchexec
Usage
Debug - Run
- Run
just watch(orcrystal run src/bcv-kemal.cr)
Production - Run
- Run
just prod(orKEMAL_ENV=production crystal run src/bcv-kemal.cr --release -O3)
Production - Build
- Run
just build-prod(orKEMAL_ENV=production crystal build src/bcv-kemal.cr -o bcv-kemal --release -O3)
TODO
- [ ] Document database schema
- [ ] Document .env fields
- [ ] Document content ETL
- [ ] Capture performance metrics
Data Sources
Text
- English Bibles: https://openbible.com/texts.htm - several translations available
- Greek New Testament:
- https://github.com/LogosBible/SBLGNT
- https://github.com/STEPBible/STEPBible-Data
- https://www.mrgreekgeek.com/2023/03/08/free-digital-greek-new-testaments/
- https://codexsinaiticus.org/en/project/transcription_download.aspx
- Hebrew Bible:
- https://archive.org/details/original-hebrew-bible-a-free-paleo-hebrew-bible-including-all-books-of-the-old-t
- https://tanach.us/Pages/About.html
- Strongs: https://github.com/STEPBible/STEPBible-Data/tree/master/Lexicons
Converting USFX XML Files
Converter
- https://github.com/balain/usfx_to_tsv
Format
- https://github.com/biblenerd/awesome-bible-developer-resources?tab=readme-ov-file#usfx
Development
TODO: Write development instructions here
Contributing
- Fork it (https://github.com/balain/bcv-kemal/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
License
MIT
Copyright © 2025
See LICENSE for full license content.
Contributors
- John - creator and maintainer