Add multi-version Bible support with ESV and NKJV translations

- Rename project from 'ESV Bible' to 'The Bible'
- Implement version selection dropdown in homepage header
- Add support for multiple Bible versions:
  * ESV (English Standard Version) - from mdbible
  * NKJV (New King James Version) - from local NKJV/ directory
- Update all API endpoints to accept version parameter (?version=esv|?version=nkjv)
- Add version-aware favorites system that stores and displays Bible version (e.g., 'Genesis 1:1 (ESV)')
- Update database schema to include version column in favorites table
- Maintain backward compatibility with existing data
- Update Docker configuration and documentation
This commit is contained in:
Ryderjj89
2025-09-28 12:13:37 -04:00
parent 5f832aecd4
commit ceeb465c8d
1199 changed files with 187 additions and 86 deletions

View File

@@ -1,13 +1,15 @@
# ESV Bible in Markdown
# The Bible in Markdown
A Docker-based ESV Bible application with markdown content, featuring a React frontend and Node.js backend.
A Docker-based Bible application with multiple versions (ESV and NKJV) in markdown format, featuring a React frontend and Node.js backend.
> **Created with AI**: This entire application was built using Visual Studio Code with [Cline](https://github.com/cline/cline), an AI coding assistant that helped develop every aspect of the project from initial setup to final deployment.
## Features
### Core Bible Reading Experience
- **Complete ESV Bible** in markdown format with all 66 books
- **Multiple Bible versions** - ESV (English Standard Version) and NKJV (New King James Version)
- **Version selection dropdown** on the homepage for easy switching between translations
- **Complete Bible content** in markdown format with all 66 books
- **Powerful search engine** - Find any verse, word, or phrase across the entire Bible
- **Clean URLs** like `/book/Genesis/chapter/1` for easy sharing
- **Mobile responsive** design with adaptive navigation and touch-friendly controls
@@ -45,7 +47,7 @@ A Docker-based ESV Bible application with markdown content, featuring a React fr
1. **Run directly from Docker Hub**
```bash
docker run -d -p 3000:3000 -v esv-bible_data:/app/backend/data --name esv-bible ryderjj89/esv-bible:latest
docker run -d -p 3000:3000 -v the-bible_data:/app/backend/data --name the-bible ryderjj89/the-bible:latest
```
2. **Access the application**
@@ -55,14 +57,14 @@ A Docker-based ESV Bible application with markdown content, featuring a React fr
1. **Clone the repository**
```bash
git clone https://github.com/Ryderjj89/esv-bible.git
cd esv-bible
git clone https://github.com/Ryderjj89/the-bible.git
cd the-bible
```
2. **Build and run with Docker (with persistent storage)**
```bash
docker build -t esv-bible .
docker run -p 3000:3000 -v esv-bible_data:/app/backend/data esv-bible
docker build -t the-bible .
docker run -p 3000:3000 -v the-bible_data:/app/backend/data the-bible
```
3. **Access the application**
@@ -110,7 +112,7 @@ Create a `.env` file in the root directory with the following variables:
```env
# OpenID Connect Configuration (Required for authentication)
# Example using Authentik - replace auth.example.com with your domain
OIDC_ISSUER=https://auth.example.com/application/o/esv-bible/
OIDC_ISSUER=https://auth.example.com/application/o/the-bible/
OIDC_CLIENT_ID=your-client-id-from-authentik
OIDC_CLIENT_SECRET=your-client-secret-from-authentik
OIDC_AUTH_URL=https://auth.example.com/application/o/authorize/
@@ -259,7 +261,7 @@ The application uses SQLite for user data when authentication is enabled:
### docker-compose.yml
- **Single service** configuration for easy deployment
- **Volume mounting** for database persistence (`esv-bible-data` volume)
- **Volume mounting** for database persistence (`the-bible-data` volume)
- **Automatic restart** policy for reliability
- **Port mapping** (3000:3000) for web access