Skip to content

mixwarecs/ebpi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EBPI — Evangelical Protestant Bible Interactive

An interactive, multi-language Bible explorer built on Reformed/Evangelical theology. Browse all 66 books of the Protestant canon organized by division, study structured theological commentary, trace the redemptive arc through an interactive timeline, and explore key biblical characters — in Spanish, English, and Portuguese.

README also available in Spanish: README.es.md


Features

  • Canonical shelf — 66 books organized into 10 divisions (Pentateuch, Historical, Wisdom, Major Prophets, Minor Prophets, Gospels, Acts, Pauline Epistles, General Epistles, Revelation) with color-coded era bands
  • Multi-tab book viewer — Overview, Theology, Purpose, Canon Position, History, Key Verses, and Sources per book
  • Systematic theology integration — Westminster Confession chapter anchors and Covenant Theology framework mapped to each book
  • Interactive chapter timeline — Horizontal scrollable timeline with era bands and character nodes; click any character for bio, typology, and NT references
  • Division tours — Category-level overviews with Christological focus, covenant period, and Reformed distinctives before drilling into individual books
  • Trilingual — Spanish (es), English (en), Portuguese (pt); language is persisted in the URL so any view can be shared or bookmarked
  • URL-based navigation — Every view state is encoded in the hash (e.g. #book/1/theology/en) for shareable, refreshable deep links
  • Scholarly sources — Tiered bibliography per book covering primary, secondary, and reference works

Tech Stack

Layer Technology
UI React 19
Build Vite 8
Language JavaScript (ES Modules)
Styling Inline CSS-in-JS with a unified color token system
Data Static JSON files loaded at runtime
Linting ESLint 10 with React Hooks and React Refresh plugins

Project Structure

ebpi/
├── canon/                   # React application
│   ├── src/
│   │   ├── App.jsx
│   │   ├── CanonShelf.jsx   # Main routing controller
│   │   ├── constants.js     # Color tokens, book registry, UI strings
│   │   ├── utils.jsx        # Verse linking, URL builders
│   │   ├── adapters/
│   │   │   └── canonToViewer.js   # CANON schema → component shapes
│   │   └── components/
│   │       ├── IndexPage.jsx      # OT / NT shelf view
│   │       ├── DivisionTour.jsx   # Division overview page
│   │       ├── BookViewer.jsx     # Multi-tab book detail
│   │       └── book/
│   │           ├── Timeline.jsx   # Interactive chapter timeline
│   │           ├── TheologyTab.jsx
│   │           └── SourcesTab.jsx
│   ├── public/
│   │   └── data/                  # Book JSON files (served at runtime)
│   ├── package.json
│   └── vite.config.js
└── data/                    # Source data (CANON Pipeline output)
    ├── books-manifest.json
    ├── personas-display.json
    ├── genesis.json
    └── ...

Getting Started

Prerequisites

  • Node.js v18 or later
  • npm (included with Node.js)

Installation

# 1. Clone the repository
git clone https://github.com/mixwarecs/ebpi.git
cd ebpi

# 2. Install dependencies
cd canon
npm install

Development

npm run dev

Opens a Vite dev server at http://localhost:5173 with hot module replacement.

Production Build

npm run build

Outputs an optimized bundle to canon/dist/.

Preview Production Build

npm run preview

Serves the production build locally for final verification.

Lint

npm run lint

URL Routing

The app uses hash-based routing so every state is shareable:

Pattern Description
# Canonical shelf (OT / NT index)
#division/[key] Division tour for a given canonical group
#book/[id] Book overview (default tab, current language)
#book/[id]/[tab]/[lang] Book at a specific tab and language

Example: #book/1/theology/en opens Genesis in the Theology tab in English.


Data

Book records are generated by the CANON Pipeline — a separate process that produces structured JSON following a fixed schema. Each record contains:

  • Authorship, date, and audience
  • Chapter-by-chapter summaries
  • Systematic theology doctrines with verse anchors
  • Westminster Confession chapter mapping
  • Covenant theology connections
  • Key characters with typology and NT references
  • Historical background (chronology, geography, ANE context)
  • Tiered scholarly sources

Completed books are placed in canon/public/data/ and registered in books-manifest.json.

Current Coverage

Status Books
Complete Genesis, Exodus, Leviticus, Numbers, Deuteronomy
Coming soon 61 remaining books

Theology Framework

The content is written from a Reformed Protestant / Evangelical perspective:

  • Westminster Confession of Faith anchors link doctrine to book content
  • Covenant Theology — Adamic, Noahic, Abrahamic, Mosaic, and Davidic covenants are traced across books
  • Christological focus — Every book is connected to its redemptive-historical role and typological fulfillment in Christ
  • Redemptive history epochs define the timeline era bands visible in the book viewer

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-addition
  3. Commit your changes: git commit -m "Add: description"
  4. Push and open a pull request

To add a new book, run the CANON Pipeline to generate the book JSON, then follow the viewer integration steps.


License

MIT — see LICENSE for details.