Commit Graph

147 Commits

Author SHA1 Message Date
nmemmert 1bc573147d Redesign Q&A for mobile and upgrade completion certificate
- Full mobile redesign of Q&A: edge-to-edge cards, full-width layout,
  wrapping action buttons, hidden sidebar, proper touch targets, and
  fixed double-padding from thanks-page/thanks-card wrapper
- Fancy certificate redesign: double gold border frame, corner ornaments,
  ornamental rules with diamond dividers, decorative seal, gold glow,
  and updated issuer to "Verse by Verse with Nate"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 13:40:31 -04:00
nmemmert 8eae361a73 Q&A mobile 2026-06-09 11:30:36 -04:00
nmemmert ee9d76ada7 Wire lesson discussion to community, fix search links
- Replace standalone StudySectionComments with CommunityBoard locked to
  section tag on lesson page — lesson discussion now feeds directly into
  the community system
- Quiz "share to discussion" posts to community API (not separate comments)
- "Go to Community" button no longer pre-filters by section (lesson
  discussion is now on-page)
- Add "See all community posts" link from lesson discussion block
- Fix search: download results now use correct custom-- ID format
- Fix search: episodes with a highlight page route to /episodes/:id
  internally instead of opening the external link

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 10:23:54 -04:00
nmemmert 75d490020b search download fix 2026-06-09 10:02:01 -04:00
nmemmert c4645e3475 Add cross-site improvements across three phases
Phase 1 — Quick wins:
- Image lazy-loading on series/resource cards
- Newsletter signup added to Episodes page (before highlights)
- Per-route meta tags via usePageMeta hook (title, og:title, og:description)
- Breadcrumbs on study index, section, and notes pages
- SVG completion checkmark badges on study section list
- Analytics time-range filter (7d / 30d / 90d) in admin panel

Phase 2 — Medium features:
- Related episodes on archived series detail pages
- Resource library two-tier filter (type + tag chips)
- Global search (Fuse.js) moved below sticky header as full-width bar
- Q&A anonymous upvoting with localStorage dedup + admin pin/unpin
- Study enrollment funnel tracking (firstVisitAt, firstCompletionAt) with funnel chart in analytics

Phase 3 — Larger features:
- Study section comments (auto-approve for enrolled users, admin moderation panel)
- Study completion certificate (canvas render, PNG download, shareable public URL)
- Episode script full-text search (mammoth docx extraction, server-side search, admin upload UI)
- Reflection questions renamed from Discussion Questions; quiz answers can be shared to section discussion
- Public certificate route at /certificate/:token with og meta tags
- Comment moderation panel added to admin under Manage > Study Comments

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 09:10:29 -04:00
nmemmert 9ad24df626 tweaks 2026-06-08 16:47:21 -04:00
nmemmert 3e1b1e0fae Enrolment issue 2026-06-08 14:45:04 -04:00
nmemmert 95b7a3f211 Add in /salvation 2026-06-08 10:24:37 -04:00
nmemmert 66699270f5 Clean. Here's what's live now:
- **Tag filter bar** appears above the grid whenever any download has tags assigned. Chips for "All" + each unique tag, centered under the heading.
- **Clicking a tag** filters the grid to only matching downloads. Clicking the active tag again (or "All") clears the filter.
- **Empty state** — if a tag has no results it shows a friendly message instead of a blank grid.
- The filter only shows when tags exist — so it's invisible today (your 3 current downloads have no tags) and appears automatically once you start tagging items in the admin.

To use it: go to Admin → Downloads → edit a download item → add tags like `Colossians`, `Worksheet`, `Devotional`. Those tags will show up as filter chips on the public page instantly after publishing.
2026-06-05 09:23:55 -04:00
nmemmert c80804b055 checpoint fix 2026-06-04 10:35:01 -04:00
nmemmert 285d837a0b publish error fix 2026-06-04 10:22:07 -04:00
nmemmert 0ba35e0e52 font change 2026-06-04 10:12:13 -04:00
nmemmert bccd1cfa60 TFL Resources 2026-06-04 09:46:51 -04:00
nmemmert 8d95c50041 TFL fix 2026-06-04 09:36:04 -04:00
nmemmert 20397960d6 Truth for life fix 2026-06-04 09:23:11 -04:00
nmemmert cb78b6522d All green. You're good to build and deploy. Here's a summary of everything done since your last commit:
---

**🐛 Bugs fixed**
- Study hub/lesson pages turned gold — CSS merge error with `.study-index-page` fixed
- Lesson announcements not saving — `announcement` field missing from `sanitizeColossiansStudySections` whitelist
- 2FA email method blocked with "not configured" — guard checked `totpSecret` instead of `twoFaMethod`
- `STUDY_REMINDERS_FILE` constant never defined — server would crash on first reminder write
- `sanitizeStudyUsers` stripped all 2FA fields — data lost on every restart
- `scheduleStudyReminders` missing from refactored modules

** Features added**
- Commentary supports paragraph formatting (double newline = new paragraph)
- Lesson announcement banner — full-width gold stripe at top of lesson page
- "Take the Quiz" renamed to "Discussion Questions" throughout
- Students must complete checkpoint before unlocking next lesson (lesson list + Next Lesson button both gate on it)
- No checkpoint questions → simple Mark as Completed button as fallback
- Truth For Life syndication widget on homepage
- Newsletter welcome email updated to your new HTML template

**🔧 Maintenance**
- `server.js` refactored from 6,013 lines into 12 focused modules
2026-06-04 09:17:34 -04:00
nmemmert 07519b4f48 auth fix 2026-06-03 16:14:49 -04:00
nmemmert e11858c2f3 gated lessions 2026-06-03 16:07:54 -04:00
nmemmert a7dc3ede21 remove quiz label 2026-06-03 15:56:17 -04:00
nmemmert b34a78f874 fix agian 2026-06-03 15:49:22 -04:00
nmemmert ae396da72e annoucments 2026-06-03 15:27:21 -04:00
nmemmert 346ecb217c refractor server.js 2026-06-03 15:08:14 -04:00
nmemmert e17a818deb fix 2026-06-03 14:31:22 -04:00
nmemmert 68f6212e9b cool stuff 2026-06-03 14:14:25 -04:00
nmemmert a2c4924191 email templates 2026-06-03 13:14:08 -04:00
nmemmert 49c9994156 New admin panel - People → Study Users 2026-06-03 12:29:05 -04:00
nmemmert 4983524ea4 newsletter fix 2026-06-03 12:08:53 -04:00
nmemmert e561bfa000 analytics fixs 2026-06-03 11:35:45 -04:00
nmemmert b7aa32e4b7 questions fix 2026-06-03 11:18:22 -04:00
nmemmert 3e49ccce62 fix 2026-06-03 11:07:46 -04:00
nmemmert 617998656c Merge pull request #4 from nmemmert/feature/online-class-upgrade
feat: homepage newsletter, Q&A callout, episodes page redesign, SEO/s…
2026-06-03 10:58:06 -04:00
nmemmert b187b19f18 feat: homepage newsletter, Q&A callout, episodes page redesign, SEO/sitemap, asset tagging
- Fix "Invalid Date" on student account page (memberSince guard)
- Fix study community author showing full email instead of username
- Add newsletter sign-up section to homepage (between PRISM and Current Series)
- Add newsletter opt-in nudge to study enrollment flow
- Redesign episodes page: latest episode featured card + per-episode Spotify embed
- Add SEO description field to episodes page (visually hidden, admin-editable)
- Expand default sitemap paths to include /about, /contact, /episodes, /resources, /study, /study/titus, /study/colossians
- Add featured Q&A callout section to homepage
- Add Q&A callout to study hub footer
- Tag both untagged image assets in Asset Manager
2026-06-03 10:56:55 -04:00
nmemmert ef6760c788 Merge pull request #3 from nmemmert/feature/online-class-upgrade
fix
2026-06-02 14:21:44 -04:00
nmemmert 01abb2c8c6 fix 2026-06-02 14:21:03 -04:00
nmemmert bdd80db80a Merge pull request #2 from nmemmert/feature/online-class-upgrade
Feature/online class upgrade
2026-06-02 14:15:26 -04:00
nmemmert 3e050c8909 stuff 2026-06-02 14:13:37 -04:00
nmemmert 5b448aef0f stuff 2026-06-02 14:02:00 -04:00
nmemmert b18f4e88fa Add study completion, checkpoints, lesson announcements, and lesson-thread defaults 2026-06-02 12:03:29 -04:00
nmemmert 33ac2fb5d0 Fix homepage external link placement and publish sanitization 2026-06-01 13:31:26 -04:00
nmemmert 1d536827e3 Improve admin UX and autosave handling 2026-06-01 12:56:26 -04:00
nmemmert b9ed8761db admin redesign: topbar state zone, podcast hub tabs, AnalyticsPanel CSS classes, useAutosave 2026-06-01 11:45:52 -04:00
nmemmert a58d75c425 Add drag-and-drop lesson reordering for admin study sections 2026-05-26 10:09:43 -04:00
nmemmert c1fcf66ef8 Expand study lesson and community pages to use more horizontal space, reduce scrolling 2026-05-21 16:09:42 -04:00
nmemmert b079eb5386 Fix community page auth endpoint to correctly load enrollment status 2026-05-21 14:53:11 -04:00
nmemmert 295c0b61f8 Default to login mode and make signup toggle a prominent button 2026-05-21 14:51:59 -04:00
nmemmert 01143d3ec9 Add community question message type with pre-fill from study community 2026-05-21 14:39:30 -04:00
nmemmert 367ebc88b4 Add dedicated study community page at /study/:studySlug/community 2026-05-21 14:07:17 -04:00
nmemmert eee200cf9c Add study community discussion board and Ask Nate button 2026-05-21 14:04:12 -04:00
nmemmert ffa860d5bc Preserve releasedAt timestamps during admin content sanitize 2026-05-21 12:44:13 -04:00
nmemmert bd047b029c Fix admin publish data loss for unreleased lessons and harden data persistence 2026-05-21 12:39:28 -04:00