Pet layout: tabbed nav with counts for photos/medical/fosters, status
badge in header. Detail overview: summary cards and compatibility grid.
Profile: full edit form including adoption info conditional on status,
audit logged. Photos: upload, set primary (star toggle), delete, reorder
with prev/next arrows. Medical: add/delete records grouped by date,
cost stored as cents. Fosters: assign by user account (linked to
foster-role users), set current, delete, audit logged throughout.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pet list: search by name/breed/microchip, filter by status/species,
sort columns, pagination, delete with confirm modal. New pet form:
full fields including photos with drag-and-drop preview. Quick intake:
mobile-optimized form with camera/gallery photo capture, toggles for
species/sex, sets intake date to today.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sidebar with permission-filtered nav, mobile hamburger, org name from
config, logout button. Dashboard loads pet/application/foster/donation
stats and recent audit log activity.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All pages use config-driven org info via data.orgConfig — no hardcoded
org names, emails, or external URLs. Stripe donate page gracefully falls
back to a contact CTA when STRIPE_SECRET_KEY is not configured.
RateLimiter applied to contact form and happy tails submission.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Client-side generator page with species (dog/cat) and theme selectors
submits a job to /api/pet-names POST, then polls GET until completed.
API uses nameGeneratorLimiter for rate limiting and delegates to
queueNameGenerationJob/getJobStatus from lib/server/ai.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Each form checks orgConfig.applications to verify the type is enabled,
validates required fields, inserts into the applications table, and
sends email notification via sendApplicationNotification. Adoption form
supports optional pet pre-selection via ?pet=slug query param. Surrender
form auto-creates a pet record from submitted data.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- About, adoption process, become a foster, how to help, volunteer, why adopt pages
- All org name/email/contact info driven by data.orgConfig
- Foster resources page with optional FOSTER_RESOURCES_PASSWORD password gate
- Content blocks loaded from DB with sensible generic fallback text
- Application links conditionally shown based on orgConfig.applications flags
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Home page loads featured pets, upcoming events, content blocks, and stats
- Pets listing page with search/filter by species and sex, infinite scroll
- Pet detail page with photo gallery/lightbox, compatibility badges, and related pets
- /api/pets GET endpoint for infinite scroll pagination
- All schema adapted for pawprint (url, startDate, published, etc.)
- All org name references driven by data.orgConfig.orgInfo.name
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Initializes SvelteKit 2 + Svelte 5 project with adapter-node, Tailwind CSS 4,
Drizzle ORM (MySQL), Stripe, Nodemailer, and argon2 dependencies. Configures
app.html with PWA meta tags, app.css with brand color tokens, and manifest.json.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
45 tasks across 9 phases covering foundation, server modules, UI,
public routes, admin dashboard, foster portal, setup wizard, API,
deployment, and testing. Full TDD approach with AHCR as reference.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comprehensive design for the multi-tenant rescue management SaaS,
covering architecture, data model, tenant lifecycle, roles, features,
tech details, testing, and deployment. Clean room rebuild from AHCR.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
README, multi-tenant SaaS architecture (database-per-tenant),
automated onboarding flow (signup → 60 seconds → live site),
and template extraction plan from AHCR codebase.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>