Commit Graph
14 Commits
Author SHA1 Message Date
nmemmertandClaude Sonnet 4.6 96c4b541f9 Add color-coded calendar dots, prayer notes, and export prayer log
- Each prayer gets a consistent color derived from its ID; calendar
  dots now use those colors so you can see which prayers were covered
  at a glance, and the day-detail panel color-codes each entry too
- New Notes field on every prayer card for scripture, updates, and
  mid-prayer thoughts — separate from the answer field, freely editable
- Word export now includes Notes and Prayer Log sections for each prayer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-21 08:39:16 -04:00
nmemmertandClaude Sonnet 4.6 57937d986d Add prayer log and calendar view
Each prayer card now has a "Prayer Log" section where you can record
when you prayed, with an optional note per session. A Calendar tab
shows a monthly view with dots on days you prayed; clicking a day
reveals which prayers were covered and any notes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-21 08:32:06 -04:00
Claude ea0f84806d fix: use bind mount for persistent data on ZimaOS
Replace named volume with direct bind mount to
/media/ZimaOS-HD/AppData/Prayer/Data so data survives
container recreation without relying on Docker volume management.
2026-07-18 23:44:02 +00:00
Claude 2b3d6a540c Add DOCX export endpoint and Export button
- GET /api/export generates a Word document with all non-archived prayers
- Accepts ?status=active|answered|all and ?tag= query params to match
  the current filter/tag selection in the UI
- Document sections: Active Prayers + Answered Prayers with page break,
  each prayer showing person, request, answer, dates, and tags
- Styled with Palatino Linotype, page numbers in footer
- Export button in the toolbar triggers download of dated .docx file

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 23:36:25 +00:00
Claude af836d4ec9 Add person field, full-text search, and search highlighting
- New 'Who are you praying for?' field on prayer cards (optional)
- Person name shown in primary color above the request text
- Search bar filters across person, request, answer, and tags simultaneously
- Search terms highlighted in yellow/amber in results
- Tag filter and search combine with status filter

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 23:32:37 +00:00
Claude 8bda0b814c Add tag filtering and fix browser title
- Tag filter bar appears when any prayers have tags; click to filter,
  click again or hit Clear to reset. Tags on cards are also clickable.
- Status filter and tag filter combine (e.g. active + family tag).
- Browser tab title changed from 'React App' to 'Prayer Journal'.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 23:28:17 +00:00
Claude bdf27b8b99 Generate prayer ID on server to fix crypto.randomUUID browser compat
Older browsers (and non-HTTPS contexts) don't have crypto.randomUUID.
Move ID generation to the server using Node's built-in crypto module.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 17:18:12 +00:00
Claude a27b35191d Fix permissions handling and surface write errors to the UI
- Server attempts chmod on data dir at startup if not writable
- All write routes now catch errors and return 500 with a readable message
- Added /api/health endpoint to diagnose mount issues
- Frontend propagates server errors to a visible banner

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 17:06:00 +00:00
Claude e6710b3419 Fix Express 5 wildcard route crash
Express 5 requires named wildcard params — '*' is invalid, use '*splat'.
This was causing the container to crash-loop on startup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 16:43:02 +00:00
Claude 821132967f Add GitHub Actions CI/CD, update docker-compose and README
- GitHub Actions builds and pushes to ghcr.io/nmemmert/prayer on every
  push to main; PRs build only (no push). Uses GHA layer cache for speed.
- docker-compose references the published image, adds healthcheck,
  restart policy, and explicit env vars.
- README rewritten: Docker usage, data persistence, CI/CD, dev setup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 16:21:28 +00:00
Claude 898c12b57d Add express and cors dependencies
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 16:20:33 +00:00
Claude 1b8e307d4c Persist prayer data to a mounted Docker volume via Express API
Replaces localStorage with a JSON-file backend (server.js). Prayers are
stored in /data/prayers.json, which is mounted as a named Docker volume so
data survives container restarts and rebuilds. React fetches from /api/prayers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 16:20:17 +00:00
Claude 1d37105e4b Add Dockerfile and docker-compose for production deployment
Multi-stage build: Node 20 builds the React app, nginx serves the static files on port 3000.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 16:18:34 +00:00
Claude 9e82ec2f1a Add prayer journal app with request + answer tracking
Todo-list style app where users can add prayers, record how God answered
them, filter between active/answered, and tag entries for organization.
Persists to localStorage. Clean warm serif aesthetic with dark mode support.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DReRqHxSYuVfCzTzQGD9hZ
2026-07-18 16:18:00 +00:00