Note not found.

Project: Intelligence Staffing Systems

project-iss Project Page

active project-page

Vision

Consulting business app for intelligentstaffingsystems.ai: a public landing page plus a client management app shipped to the App Store via Turbo Native. The app IS the sales proof — prospects book, register, and communicate through the exact pipeline they would be buying. $800/month after an approved first-month build. OWN your operations, software, and data.

User Stories

Authoritative story detail lives in the repo: docs/user-stories.md (6 epics, acceptance criteria, role-tab matrix). Story keys used on board items:
Key Backing (repo doc) Role Success metric
project-setup README + docs/architecture.md + docs/adoption-plan.md Developer Repo, docs, infra, and CI exist; sprints can dispatch
landing-page Epic 1 (US-1.1) Visitor Landing page renders publicly, mobile-first
registration Epic 1 (US-1.2–1.4) Visitor/Lead Form → Lead record → booking → email with App Store link
auth Epic 2 (US-2.1) + architecture.md Lead↔Keycloak linking Lead/Client Keycloak login works; roles gate tabs; Lead claimed by email
dashboard Epic 2 (US-2.2) Lead "Hi, {first_name}" dashboard after login
navigation Epic 2 + role-tab matrix All roles Bottom tab bar with role-correct tabs
catalog Epic 3 (US-3.1–3.2) Lead/Client Browse portfolio by three pillars; admin CRUD
messaging Epic 4 (US-4.1–4.2) Lead/Client/Admin One thread per lead; admin sees all
communications docs/ui-ux.md (Communications tab layouts) + docs/messaging.md Lead/Client/Admin Lead/client: email + appointment + DM card; admin: incoming inbox with DM and appointment streams
crm docs/ui-ux.md (CRM tab layout) + Epic 6 (US-6.1–6.2) Admin Business pipeline with search, role filter, lead→client promotion with audit trail
profile Epic 5 (US-5.1) All roles Profile edit syncs Rails + Keycloak; logout ends SSO
admin Epic 6 (US-6.1–6.2) Admin Pipeline list; lead→client promotion with audit
ios-app docs/ios.md Lead/Client App Store app loads the Rails app; rebuilds almost never
android-app docs/ios.md (same Turbo Native model) Lead/Client Play Store app loads the Rails app; same update model as iOS
domains godaddy-tofu examples (PR #40) Platform operator New domain = tfvars edit; DNS → Hetzner edge → k3s
ui-ux docs/ui-ux.md All roles Design doc + tab architecture established as single source of truth
dev-environment #192 / #193 / #194 + docs/pipeline.md Developer Dev → staging → prod pipeline: dev auto-deploys via ArgoCD, staging on merge, prod on manual promotion

Architecture

Authoritative: repo docs/architecture.md. Key decisions:
  • Rails 8 full-stack monolith (Hotwire, no SPA), Turbo Native iOS shell (config, not code)
  • Keycloak realm iss, roles admin/lead/client; roles authoritative in Keycloak, Lead.role is display mirror
  • Lead record exists pre-auth; claimed on first login by case-insensitive email match; walk-in fallback creates Lead from token
  • Postmark for all transactional email (postmark-email project owns account/domain/server IaC)
  • Custom domain via GoDaddy DNS → Hetzner edge (Caddy) → Tailscale → k3s; port 3000 prod, 9999 local dev
  • Keycloak architecture documented in docs/keycloak.md — theme deployment path, domain routing (current Tailscale + planned auth.palinks.app), cross-repo dependency map

Board

board-iss — sub-boards: board-1800-decomp (docs adoption decomposition)

Status

  • Repo live with docs foundation on main (README TOC, user-stories, architecture, ios, adoption-plan)
  • iOS companion repo scaffolded and QA-approved (TestFlight pending first MacBook build)
  • godaddy-tofu example modules merged; intelligentstaffingsystems.ai DKIM-verified in Postmark
  • Sprint 0 (docs gate) complete — all Tier 1 docs merged
  • Sprint 1 complete — all 4 tickets merged: #3 Rails bootstrap (PR #31), #17 Keycloak theme (PR #30), #4 pal-e-services registration (PR #178), #5 deployment overlay (PR #228). All in validation.
  • Sprint 2 complete — all 3 tickets merged: #8 Lead model (PR #33), #6 Keycloak OIDC auth (PR #34), #7 Landing page (PR #32). All in validation.
  • Sprint 3 complete — all 3 tickets merged: #9 Dashboard (PR #35), #10 Tab bar (PR #36), #13 Profile (PR #37). All in validation.
  • Sprint 4 complete — #11 decomposed (#38/#39/#41 merged), #12 decomposed (#40 merged, #42 Turbo Streams merged via PR #66). #42 in validation.
  • Domain wired to production — pal-e-platform PR #534 merged: DNS A + www CNAME → Hetzner edge, Caddy vhost added, Salt highstate pipeline created. intelligentstaffingsystems.ai now serves the live Rails app.
  • UX redesign docs merged — #48 UI/UX design doc + user stories rewrite (PR #62). New tab architecture (Catalog/Projects/Communications/Account + CRM for admin), new client journey (landing → App Store → in-app registration), Sprint A–D delivery plan with 13 new tickets (#48–#60).
  • Live messaging shipped — #42 Turbo Streams + Solid Cable (PR #66). Real-time message delivery via Action Cable, Stimulus controllers for auto-scroll and alignment, importmap + Turbo + Stimulus JS foundation. No Redis dependency (Solid Cable).
  • Keycloak architecture documented — #67 docs/keycloak.md (PR #68). Auth flow diagrams, domain routing (Tailscale current, auth.palinks.app planned), theme deployment path across repos, cross-repo dependency map. Gaps identified: theme not deployed to pal-e-platform, login_theme not set, config.hosts commented out.
  • Sprint A scope refined — deprecated old sprint 5/6 tickets (#14/#15/#16/#18). Registration decomposed: #59 (Rails + register.ftl, 8pts), svc#184 (login_theme + verify_email, 2pts), platform#541 (theme ConfigMap deploy, 3pts), #69 (config.hosts, 1pt). Dependency chain: platform#541 → svc#184 → #59.
  • Sprint A executed — all 6 tickets merged in parallel (2026-07-17). platform#541 done. #49 (PR #73), #58 (PR #74), #59 (PR #72), #69 (PR #70), svc#184 (PR #187) in validation. CI blocker #75 (Messages test failures from Turbo Streams merge) fixed by PR #76 — pipeline unblocked, ~6 commits deploying.
  • Sprint B complete — all 6 tickets merged (2026-07-17). #50 Catalog App Store links (PR #84), #51 Projects tab (PR #83), #52 Communications tab (PR #82), #80 Makefile + docs (PR #81) merged in ISS repo. #78 Kustomize overlays (PR #234 in pal-e-deployments), #79 DNS + Caddy dev subdomain (PR #543 in pal-e-platform) merged. All 6 in validation.
  • Sprint C: Dev environment (PR #94, merged 2026-07-18) — #86 dev environment: shared Keycloak env vars (.env.development.example), ephemeral DB (make reset), dev URL (dev.intelligentstaffingsystems.ai in config.hosts), port convention fix (9999), migration workflow docs. Cross-repo: pal-e-services PR #191 (Keycloak redirect URIs), pal-e-deployments PR #238 (overlay docs), pal-e-platform PR #545 (CI fix). In validation.

Milestones

M1: docs gate merged (Sprint 0). M2: app deployed to k3s behind funnel (Sprint 1–2). M3: dashboard live end-to-end (Sprint 3). M4: TestFlight (Sprint 6).

Repos

Repo Platform Role Status
ldraney/intelligentstaffingsystems Forgejo Rails app — all product work Active
ldraney/intelligentstaffingsystems-ios Forgejo Turbo Native shell — supplementary Active
ldraney/godaddy-tofu Forgejo GoDaddy provider + domain examples Active