Skip to content

aaronjs99/mBAB

Repository files navigation

The Multi-Book Advanced Bible Search (mBAB)

Table of Contents

Introduction

This web application allows users to search for word sequences—case-sensitive or case-insensitive—across a custom selection of Bible books.

Features

  • Multi-book and multi-version search
  • Logical AND (+) and OR (,) search syntax prioritized with parentheses
  • Case sensitivity toggle
  • Book selector grouped by Testament and Section
  • Responsive UI with collapsible book selector
  • Optional themes: Light ☀️, Dark 🌙, and High Contrast ⚫

Hosted live at aaronjs.pythonanywhere.com.

Originally built with Flask, now rebuilt using Django for better scalability and maintainability.

A Search Example

Getting Started for Developers

This guide will help you set up and run the Multi-Book Advanced Bible Search (mBAB) project locally for development or customization.

Useful Resources

Requirements

  • Python 3.11 or higher
  • pip and venv (usually bundled with Python)
  • A Unix-like shell (Linux/macOS or WSL on Windows recommended)
  • make (optional but recommended for easier setup and management)

Installation Steps

# Clone the codebase repository
git clone https://github.com/aaronjohnsabu1999/mBAB.git ~/mBAB
cd ~/mBAB

# Set up a virtual environment
make venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
make install

# Apply Django migrations
make migrate

Setting Up the Bible Databases

To keep the main repo lightweight, the SQLite Bible databases are hosted separately. Download or clone them from Bible Databases and place the .db files inside a folder named databases/ at the root of this project.

# Clone the database repository
mkdir ~/mBAB/databases/
git clone https://github.com/aaronjohnsabu1999/bible-databases.git ~/bible-databases/

# Move databases to codebase directory
cp ~/bible-databases/DB/*.db ~/mBAB/databases/

Running the Application

Start the Django development server using make:

Default Localhost Run

make run

This will run the server at 127.0.0.1:8000. Open your browser and navigate to http://localhost:8000/.

Access on a Local Network (e.g., from your phone)

Override the host and/or port by passing variables:

make run HOST=0.0.0.0            # Binds to all interfaces
make run HOST=0.0.0.0 PORT=8080  # Custom port

Then visit in your mobile browser: http://<your-computer-local-ip>:8000/. To find your local IP:

# On Linux/macOS
hostname -I

# On Windows
ipconfig

Note: Ensure both devices are on the same Wi-Fi and that your firewall allows access on the selected port.

Contributors

Formatting and design feedback have been generously provided by my parents, Sabu John and Jessy Sabu John, along with several other users. Flask development support was offered extensively by @hbhoyar. The searchable Bible content is based on SQL databases originally published by @scrollmapper and later cleaned and reorganized by me. To keep this repository lightweight and easy to clone, those databases have been moved to a separate repository: Bible Databases.

Roadmap & Potential Contributions

Search Capabilities

  • Add pagination for search results
  • Include search within verse ranges (e.g., John 3:16–21)
  • Include fuzzy matching or stemming (e.g., "loves" → "love")
  • Include natural language search (e.g., "verses about forgiveness")
  • Track recent or most common searches
  • Subdivide books by genre (Law, Gospels, etc.)
  • Enable logical grouping and parentheses in search syntax

User Features

  • Add optional user accounts with saved history
  • Allow bookmarking/saving of favorite verses (via local storage or user accounts)
  • Provide user manual

Accessibility & Internationalization

  • Support multi-language display (e.g., Spanish, Hindi, Malayalam)
  • Enable keyboard-only navigation mode
  • Support copyrighted Bible versions (NIV, NLT, BSI, etc.)

Developer Integrations

  • Provide API access for other apps/church tools to integrate Bible search

UI/UX Enhancements

  • Add loading animations or skeletons on long queries
  • Make the UI fully responsive for mobile screens
  • Move controls into a collapsible sidebar
  • Improve styling with more theme options

License

This project has been licensed under The GNU General Public License v3.0

About

mBAB: The Multi-Book Advanced Bible Search

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published