From fbfdfdbbc7799acb26bb8f9b92f9c90a97a06164 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 20 Nov 2025 19:00:14 -0500 Subject: [PATCH] Add comprehensive Bible reading plans system MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reading Plans Module: - Create 8 curated reading plans for different study goals: * Chronological (365 days) - Bible in historical order * One Year Bible (365 days) - Complete Bible systematically * New Testament (90 days) - Focus on Christ and early church * Gospels & Acts (30 days) - Life of Christ immersion * Psalms & Proverbs (31 days) - Daily wisdom readings * Pentateuch (40 days) - Books of Moses * Major Prophets (60 days) - Isaiah, Jeremiah, Ezekiel, Daniel * Paul's Epistles (30 days) - Apostolic doctrine Features: - Browse all reading plans with descriptions - View detailed plan information with sample daily readings - Thematic notes for each day's readings - Duration and week count statistics - Practical guidance for using plans effectively - Scholarly introductions and usage tips Navigation: - Add /reading-plans route listing all plans - Add /reading-plans/{plan_id} route for plan details - Include in sidebar navigation - Grid layout with hover effects 🀖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- kjvstudy_org/reading_plans.py | 147 ++++++++++++++++++ kjvstudy_org/server.py | 50 ++++++ kjvstudy_org/templates/base.html | 2 + .../templates/reading_plan_detail.html | 143 +++++++++++++++++ kjvstudy_org/templates/reading_plans.html | 95 +++++++++++ 5 files changed, 437 insertions(+) create mode 100644 kjvstudy_org/reading_plans.py create mode 100644 kjvstudy_org/templates/reading_plan_detail.html create mode 100644 kjvstudy_org/templates/reading_plans.html diff --git a/kjvstudy_org/reading_plans.py b/kjvstudy_org/reading_plans.py new file mode 100644 index 0000000..75eedaf --- /dev/null +++ b/kjvstudy_org/reading_plans.py @@ -0,0 +1,147 @@ +""" +Bible reading plans for structured Scripture study. +Provides various reading schedules for different goals. +""" + +# Reading plans database +READING_PLANS = { + "chronological": { + "name": "Chronological Bible Reading Plan", + "description": "Read the Bible in the order events occurred historically", + "duration_days": 365, + "overview": "This plan arranges Scripture in chronological order, allowing you to read the Bible as a narrative of God's redemptive plan. Job is read with Genesis, Psalms with the life of David, prophets with the kings, and Gospels are harmonized.", + "sample_days": [ + {"day": 1, "readings": ["Genesis 1-3"], "theme": "Creation and Fall"}, + {"day": 2, "readings": ["Genesis 4-7"], "theme": "From Cain to Noah"}, + {"day": 3, "readings": ["Genesis 8-11"], "theme": "The Flood and Tower of Babel"}, + {"day": 30, "readings": ["Job 1-5"], "theme": "Job's trials begin"}, + {"day": 100, "readings": ["Exodus 1-4"], "theme": "Moses and the Burning Bush"}, + {"day": 200, "readings": ["2 Samuel 11-12", "Psalms 51"], "theme": "David's sin and repentance"}, + {"day": 300, "readings": ["Matthew 5-7"], "theme": "Sermon on the Mount"}, + {"day": 365, "readings": ["Revelation 21-22"], "theme": "New Heaven and Earth"}, + ] + }, + "one-year": { + "name": "One Year Bible Reading Plan", + "description": "Read through the entire Bible in one year", + "duration_days": 365, + "overview": "This classic plan divides Scripture into daily readings of approximately 3-4 chapters, systematically progressing through the Old and New Testaments, Psalms, and Proverbs.", + "sample_days": [ + {"day": 1, "readings": ["Genesis 1-3", "Matthew 1", "Psalms 1"], "theme": "In the beginning"}, + {"day": 7, "readings": ["Genesis 16-18", "Matthew 7", "Psalms 7"], "theme": "Week one complete"}, + {"day": 30, "readings": ["Exodus 13-15", "Matthew 30", "Psalms 30"], "theme": "First month milestone"}, + {"day": 100, "readings": ["Leviticus 23-25", "Mark 9", "Psalms 100"], "theme": "The feasts"}, + {"day": 200, "readings": ["1 Chronicles 10-12", "Acts 1", "Psalms 52"], "theme": "The early church"}, + {"day": 300, "readings": ["Jeremiah 14-16", "1 Thessalonians 1", "Proverbs 26"], "theme": "Prophets and epistles"}, + {"day": 365, "readings": ["Malachi 3-4", "Revelation 22", "Psalms 150"], "theme": "Journey complete"}, + ] + }, + "new-testament": { + "name": "New Testament in 90 Days", + "description": "Read the entire New Testament in three months", + "duration_days": 90, + "overview": "Focus on Christ and the early church by reading through all 27 New Testament books in 90 days. Ideal for new believers or those wanting to deepen their understanding of Christian doctrine.", + "sample_days": [ + {"day": 1, "readings": ["Matthew 1-3"], "theme": "Christ's genealogy and birth"}, + {"day": 10, "readings": ["Matthew 22-24"], "theme": "Olivet Discourse"}, + {"day": 20, "readings": ["Mark 11-13"], "theme": "Passion week begins"}, + {"day": 30, "readings": ["Luke 15-17"], "theme": "Parables of grace"}, + {"day": 40, "readings": ["John 11-13"], "theme": "Upper room discourse"}, + {"day": 50, "readings": ["Acts 13-15"], "theme": "Paul's first journey"}, + {"day": 60, "readings": ["Romans 12-14"], "theme": "Christian living"}, + {"day": 70, "readings": ["Ephesians 4-6"], "theme": "Unity and armor"}, + {"day": 80, "readings": ["Hebrews 9-11"], "theme": "Faith and better covenant"}, + {"day": 90, "readings": ["Revelation 21-22"], "theme": "All things new"}, + ] + }, + "gospels-acts": { + "name": "Gospels and Acts in 30 Days", + "description": "Immerse yourself in the life of Christ and the early church", + "duration_days": 30, + "overview": "Read the four Gospels and Acts in one month, gaining a comprehensive view of Christ's ministry, death, resurrection, and the establishment of His church.", + "sample_days": [ + {"day": 1, "readings": ["Matthew 1-4"], "theme": "Birth and temptation of Christ"}, + {"day": 5, "readings": ["Matthew 17-20"], "theme": "Transfiguration and teachings"}, + {"day": 10, "readings": ["Mark 11-14"], "theme": "Passion week"}, + {"day": 15, "readings": ["Luke 15-18"], "theme": "Parables and prayers"}, + {"day": 20, "readings": ["John 13-17"], "theme": "Upper room teachings"}, + {"day": 25, "readings": ["Acts 10-13"], "theme": "Gospel to Gentiles"}, + {"day": 30, "readings": ["Acts 26-28"], "theme": "Paul reaches Rome"}, + ] + }, + "psalms-proverbs": { + "name": "Psalms and Proverbs Daily", + "description": "Read through wisdom literature multiple times per year", + "duration_days": 31, + "overview": "Read one Psalm and one chapter of Proverbs each day. The 31-day cycle allows you to read Proverbs 12 times and Psalms 5 times per year.", + "sample_days": [ + {"day": 1, "readings": ["Psalms 1", "Proverbs 1"], "theme": "Wisdom's foundation"}, + {"day": 15, "readings": ["Psalms 15", "Proverbs 15"], "theme": "Righteous living"}, + {"day": 31, "readings": ["Psalms 31", "Proverbs 31"], "theme": "Trust and the virtuous woman"}, + ] + }, + "pentateuch": { + "name": "Books of Moses in 40 Days", + "description": "Study the Law and foundational narratives", + "duration_days": 40, + "overview": "Read Genesis through Deuteronomy in 40 days, exploring creation, the patriarchs, the Exodus, and the giving of the Law.", + "sample_days": [ + {"day": 1, "readings": ["Genesis 1-3"], "theme": "Creation and Fall"}, + {"day": 10, "readings": ["Genesis 37-40"], "theme": "Joseph in Egypt"}, + {"day": 20, "readings": ["Exodus 19-22"], "theme": "The Law given"}, + {"day": 30, "readings": ["Numbers 13-16"], "theme": "Wilderness wandering"}, + {"day": 40, "readings": ["Deuteronomy 31-34"], "theme": "Moses' death"}, + ] + }, + "prophets": { + "name": "Major Prophets in 60 Days", + "description": "Read Isaiah, Jeremiah, Ezekiel, and Daniel", + "duration_days": 60, + "overview": "Study the major prophets, their messages of judgment and hope, and their Messianic prophecies fulfilled in Christ.", + "sample_days": [ + {"day": 1, "readings": ["Isaiah 1-3"], "theme": "Isaiah's call"}, + {"day": 15, "readings": ["Isaiah 40-42"], "theme": "Comfort and the Servant"}, + {"day": 30, "readings": ["Jeremiah 30-33"], "theme": "The New Covenant"}, + {"day": 45, "readings": ["Ezekiel 36-39"], "theme": "Restoration promised"}, + {"day": 60, "readings": ["Daniel 10-12"], "theme": "End times revealed"}, + ] + }, + "paul-epistles": { + "name": "Paul's Letters in 30 Days", + "description": "Study apostolic doctrine through Paul's epistles", + "duration_days": 30, + "overview": "Read all thirteen letters attributed to Paul, from Romans to Philemon, grasping the depth of Christian theology and practical living.", + "sample_days": [ + {"day": 1, "readings": ["Romans 1-3"], "theme": "Justification by faith"}, + {"day": 5, "readings": ["Romans 12-14"], "theme": "Christian living"}, + {"day": 10, "readings": ["1 Corinthians 12-14"], "theme": "Spiritual gifts and love"}, + {"day": 15, "readings": ["Galatians 1-3"], "theme": "Freedom in Christ"}, + {"day": 20, "readings": ["Ephesians 4-6"], "theme": "Unity and warfare"}, + {"day": 25, "readings": ["1 Timothy 3-5"], "theme": "Church order"}, + {"day": 30, "readings": ["Philemon"], "theme": "Forgiveness and brotherhood"}, + ] + } +} + + +def get_plan(plan_id: str) -> dict: + """Get a reading plan by ID""" + return READING_PLANS.get(plan_id) + + +def get_all_plans() -> dict: + """Get all available reading plans""" + return READING_PLANS + + +def get_plan_summary() -> list: + """Get summary list of all plans""" + return [ + { + "id": plan_id, + "name": plan["name"], + "description": plan["description"], + "days": plan["duration_days"] + } + for plan_id, plan in READING_PLANS.items() + ] diff --git a/kjvstudy_org/server.py b/kjvstudy_org/server.py index ec1ce8f..aa95c49 100644 --- a/kjvstudy_org/server.py +++ b/kjvstudy_org/server.py @@ -15,6 +15,7 @@ from starlette.exceptions import HTTPException as StarletteHTTPException from .kjv import bible, VerseReference from .cross_references import get_cross_references +from .reading_plans import get_plan, get_all_plans, get_plan_summary try: from ged4py import GedcomReader @@ -3074,6 +3075,55 @@ def books_page(request: Request): ) +@app.get("/reading-plans", response_class=HTMLResponse) +def reading_plans_page(request: Request): + """Browse Bible reading plans""" + books = list(bible.iter_books()) + plans = get_plan_summary() + + breadcrumbs = [ + {"text": "Home", "url": "/"}, + {"text": "Reading Plans", "url": None} + ] + + return templates.TemplateResponse( + "reading_plans.html", + { + "request": request, + "plans": plans, + "books": books, + "breadcrumbs": breadcrumbs + } + ) + + +@app.get("/reading-plans/{plan_id}", response_class=HTMLResponse) +def reading_plan_detail(request: Request, plan_id: str): + """View a specific reading plan""" + books = list(bible.iter_books()) + plan = get_plan(plan_id) + + if not plan: + raise HTTPException(status_code=404, detail="Reading plan not found") + + breadcrumbs = [ + {"text": "Home", "url": "/"}, + {"text": "Reading Plans", "url": "/reading-plans"}, + {"text": plan["name"], "url": None} + ] + + return templates.TemplateResponse( + "reading_plan_detail.html", + { + "request": request, + "plan": plan, + "plan_id": plan_id, + "books": books, + "breadcrumbs": breadcrumbs + } + ) + + @app.get("/book/{book}", response_class=HTMLResponse) def read_book(request: Request, book: str): books = list(bible.iter_books()) diff --git a/kjvstudy_org/templates/base.html b/kjvstudy_org/templates/base.html index 1a7af80..4c7fbf4 100644 --- a/kjvstudy_org/templates/base.html +++ b/kjvstudy_org/templates/base.html @@ -566,7 +566,9 @@

Navigation

diff --git a/kjvstudy_org/templates/reading_plan_detail.html b/kjvstudy_org/templates/reading_plan_detail.html new file mode 100644 index 0000000..89c4338 --- /dev/null +++ b/kjvstudy_org/templates/reading_plan_detail.html @@ -0,0 +1,143 @@ +{% extends "base.html" %} + +{% block title %}{{ plan.name }} - KJV Study{% endblock %} +{% block description %}{{ plan.description }}{% endblock %} + +{% block head %} + +{% endblock %} + +{% block content %} +

{{ plan.name }}

+

{{ plan.description }}

+ +
+
+
+
{{ plan.duration_days }}
+
Days
+
+
+
{{ (plan.duration_days / 7) | round | int }}
+
Weeks
+
+
+ +
+ {{ plan.overview }} +
+
+ +
+

Sample Daily Readings

+

The following days provide a representative sample of this reading plan's structure and progression. The complete plan follows this pattern throughout its {{ plan.duration_days }}-day duration.

+ +
+ {% for day in plan.sample_days %} +
+
Day {{ day.day }}
+
+ {% for reading in day.readings %} + {{ reading }} + {% endfor %} +
+
Theme: {{ day.theme }}
+
+ {% endfor %} +
+
+ +
+

How to Use This Plan

+

Consistency matters more than perfection. If you miss a day, simply continue where you left off rather than attempting to catch up through extended readings. The goal is sustainable Scripture engagement, not merely completing a schedule.

+ +

Consider maintaining a journal to record insights, questions, and applications. Many find morning reading sets a godly tone for the day, though evening reflection suits others better. Discover what timing best facilitates your consistent engagement with God's Word.

+ +

Prayer should accompany reading. Ask the Holy Spirit for illumination, understanding, and application. Scripture study transforms when approached not merely as information gathering but as communion with the living God who speaks through His Word.

+
+ +
+

← Back to all reading plans

+
+{% endblock %} diff --git a/kjvstudy_org/templates/reading_plans.html b/kjvstudy_org/templates/reading_plans.html new file mode 100644 index 0000000..92a9e3e --- /dev/null +++ b/kjvstudy_org/templates/reading_plans.html @@ -0,0 +1,95 @@ +{% extends "base.html" %} + +{% block title %}Bible Reading Plans - KJV Study{% endblock %} +{% block description %}Structured Bible reading schedules for systematic Scripture study{% endblock %} + +{% block head %} + +{% endblock %} + +{% block content %} +

Bible Reading Plans

+

Structured Schedules for Systematic Scripture Study

+ +
+

Systematic Bible reading provides structure for comprehensive Scripture engagement. These curated plans offer various approaches—chronological progression, thematic focus, or testament-specific study—each designed to facilitate sustained interaction with God's Word.

+ +

Whether pursuing canonical familiarity through complete Bible reading or concentrating on specific portions, these schedules provide daily guidance for disciplined Scripture intake. Select a plan suited to your current season and study objectives.

+
+ +
+

Available Reading Plans

+ +
+ {% for plan in plans %} +
+ +
{{ plan.description }}
+
{{ plan.days }} days
+
+ {% endfor %} +
+
+ +
+

Using Reading Plans

+

Select a plan above to view its complete schedule. Each plan provides daily readings with thematic notes. Consider marking your progress and maintaining consistency—even brief daily reading surpasses sporadic lengthy sessions in forming lasting Scripture engagement habits.

+
+{% endblock %}