nathanwoodburn 3a07fc2a54
Check Code Quality / RuffCheck (push) Successful in 16s
Build Docker / BuildImage (push) Successful in 19s
fix: Remove the journal update message
2026-09-25 14:55:59 +10:00
2026-09-25 10:32:35 +10:00
2026-09-25 10:32:35 +10:00
2026-09-25 10:56:15 +10:00
2026-09-25 10:32:35 +10:00
2026-09-25 10:32:35 +10:00
2026-09-25 14:21:53 +10:00
2026-09-25 14:49:28 +10:00
2026-09-25 10:32:35 +10:00
2026-09-25 10:32:35 +10:00
2026-09-25 10:56:15 +10:00
2026-09-25 10:56:15 +10:00
2026-09-25 14:45:02 +10:00
2026-09-25 10:56:15 +10:00

🕊️ Prayer Journal

A clean, responsive, and collaborative web application to track prayers, share lists with family and friends, and record God's answered prayers and testimonies.

Features

  • Simple & Flexible Authentication:
    • Sign in with Email and Password.
    • Quick Login Link (1-Click URL): Each user has a private bookmarkable URL to sign in instantly with one click without typing their password. Tokens can be regenerated at any time.
  • Personal & Group Prayer Lists:
    • Automatically creates a private "My Personal Prayers" list for each user upon registration.
    • Create custom Personal lists (strictly private, non-shareable) or Group lists (collaborative).
    • Switch between specific lists or view all prayers in a unified dashboard.
  • List Sharing & Guest Access:
    • Non-Shareable Personal Lists: Personal lists are private to the user and cannot be shared or joined.
    • Guest Viewing & Editing: Group invite links (/join/<token>) allow guests to view, create, edit, update, and celebrate answered prayers directly without needing to register or create an account.
    • Direct Email Invites: Add existing registered users directly to your group list by entering their email address.
    • Member Management: List owners can see all group members and manage roles.
  • Prayer Tracking & Praise Wall:
    • Add prayer requests with titles, scripture/details, and a dedicated "Person we are praying for" field.
    • Add ongoing progress updates and praise notes to any prayer request (with guest author attribution).
    • Mark as Answered: Record when a prayer was answered and write a testimony of God's provision.
    • Preserves History: Answered prayers are never lost or automatically deleted, building a permanent praise wall of God's faithfulness.
    • Re-open answered prayers at any time if ongoing prayer is needed.
  • Dark Mode (Automatic or Manual Override):
    • Supports automatic detection using device/browser system settings (prefers-color-scheme: dark).
    • Sleek header theme toggle allows manually forcing Light, Dark, or System theme.
    • Theme choices persist in localStorage for instant page loads (no flashing) and sync to the user's account in the database.
  • Real-Time Live Synchronization Across Devices:
    • Changes made on any device (phone, laptop, tablet) or by fellow group members appear instantly without refreshing the page.
    • Automatic version tracking on lists detects new prayers, progress notes, testimonies, reopened prayers, and edits.
    • Lightweight background polling engine with visibility/tab-focus optimization and non-intrusive DOM swapping.
    • Visual Live Sync indicator with pulsing status dot and toast notifications when updates are received from other devices.
    • Full AJAX modal form submissions for smooth, instant saving without full page reloads.
  • Admin Panel & Moderation:
    • Full administrator dashboard at /admin accessible to authorized admins.
    • First registered user (or email defined by ADMIN_EMAIL) is automatically granted admin privileges.
    • View platform stats: total users, list breakdown, active vs answered prayer rates, and database/system info.
    • Manage users (promote/demote admin roles, delete accounts), moderate prayer lists, and remove inappropriate requests.
  • Clean & Mobile-Friendly:
    • Responsive, peaceful UI that works seamlessly on desktop, tablets, and phones.
    • Search prayers in real time with keyword filtering.

Requirements

  • Python >= 3.13
  • UV

Development

  1. Install project dependencies:

    uv sync
    
  2. Run the development server:

    uv run python3 server.py
    

    The app will be available at http://127.0.0.1:5000.

  3. Run the test suite:

    PYTHONPATH=. uv run python3 -m unittest discover -v tests
    
  4. Pre-commit hooks (linter and formatter):

    uv run pre-commit install
    uv run pre-commit run --all-files
    

Production

Run using Gunicorn via main.py:

python3 main.py

Docker

docker build -t prayer-journal .
docker run -p 5000:5000 -v $(pwd)/data:/app/data prayer-journal

Configuration

Environment variables can be specified in .env:

  • SECRET_KEY: Secret key for session security (defaults to a built-in key for dev).
  • PRAYER_DB_PATH: Custom path for SQLite database file (defaults to data/prayer_journal.db).
  • BASE_DIR: Base directory for persistent data (defaults to data).
  • WORKERS: Gunicorn worker processes (defaults to 1).
  • THREADS: Gunicorn worker threads (defaults to 2).
S
Description
Journal to record prayers and answers
Readme AGPL-3.0
486 KiB
Languages
HTML 42.3%
Python 38.9%
CSS 16.7%
JavaScript 1.9%
Dockerfile 0.2%