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

Prayer Journal

A todo-list style prayer app. Add prayer requests, record how God answered them, filter between active and answered, and tag entries for organization. Data persists to a mounted Docker volume.

Running with Docker

docker compose up -d

The docker-compose.yml pulls ghcr.io/nmemmert/prayer:latest automatically. Open http://localhost:3000.

Build locally

docker compose up --build -d

Data persistence

Prayer data is stored in /data/prayers.json inside the container, mounted as the named Docker volume prayer-data. Data survives container restarts and image updates.

To inspect or back up your data:

# Print current prayers
docker compose exec prayer cat /data/prayers.json

# Copy to host
docker cp $(docker compose ps -q prayer):/data/prayers.json ./prayers-backup.json

To wipe all data:

docker compose down -v

Using a host-bind mount instead of a named volume

Replace the volumes block in docker-compose.yml:

volumes:
  - ./prayer-data:/data

CI / CD

Pushes to main trigger a GitHub Actions workflow (.github/workflows/docker.yml) that:

  1. Builds the Docker image (multi-stage: Node 20 → Node 20 slim)
  2. Pushes to GitHub Container Registry (ghcr.io/nmemmert/prayer)
  3. Tags the image as latest, the branch name, and the short commit SHA

Pull requests run the build step only (no push).

The GITHUB_TOKEN secret is used automatically — no additional secrets are required.

Development

npm install
npm start        # React dev server on :3000 (uses localStorage, no backend)
node server.js   # API server on :4000 (reads/writes data/prayers.json)

For full local dev with the backend:

node server.js &
REACT_APP_API_BASE=http://localhost:4000 npm start

Stack

Layer Technology
Frontend React 18, TypeScript
Backend Node.js, Express
Data JSON file on a Docker volume
Images GitHub Container Registry (ghcr)
CI/CD GitHub Actions
S
Description
No description provided
Readme
1.3 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 73.3%
JavaScript 15.6%
CSS 8%
Dockerfile 1%
HTML 0.7%
Other 1.4%