CASE-0007 · MISSION REPORT任務報告
FEATUREDIn Progress

kovia

Smart pet adoption platform with an automated 0–100 scoring engine, multi-tenant org access, and Google OAuth.

kovia screenshot
KEY FEATURES
  • Automated 0–100 scoring across housing, experience, motivation, evidence — with red flags
  • Multi-tenant: ADOPTER/ORG_ADMIN/PLATFORM_ADMIN with request-scoped tenant context via CLS
  • JWT + Google OAuth, S3 presigned uploads, Handlebars emails via BullMQ + Nodemailer
  • Full Docker stack: NestJS 11 + Nuxt 4 + Postgres 16 + BullMQ + MinIO + Mailpit
OVERVIEW

stars last commit license

Smart pet adoption platform with an automated scoring engine

Kovia is a full-stack web app that connects rescue organizations with adopters. Orgs publish animal listings; adopters submit applications with housing and lifestyle data; an automated scoring engine grades each application 0–100 across four weighted categories, with red-flag detection and risk-level classification.

Why I built it

A rescue org friend was drowning in adoption applications and reading every one cold — no way to prioritize, no way to flag obvious red flags before a home visit. I wanted to build something that turned the raw application form into a structured signal: housing fit, experience, motivation, supporting evidence. Plus the multi-tenant side (one platform, many rescues) was a fun design challenge — request-scoped organization context, role-based access, audit logs.

What it does

  • Three role tiersADOPTER (browse, apply, track), ORG_ADMIN (manage org, animals, review applications), PLATFORM_ADMIN (manage all orgs, users, invites).
  • Animal listings with photos (S3 presigned uploads), traits, and status management.
  • Adoption application lifecycle — from submission to approval, with internal notes for org admins.
  • Automated scoring engine — 0–100 across housing/environment, experience/lifestyle, motivation/commitment, and supporting evidence (25 pts each), plus red-flag detection.
  • JWT auth + Google OAuth 2.0, email verification, password reset.
  • Transactional emails via Handlebars templates, BullMQ-queued through Nodemailer.
  • Audit log for admin actions; request-scoped tenant context via CLS.
  • Mailpit for dev email inspection; MinIO for local S3-compatible storage.

Stack

NestJS 11 + TypeScript + Prisma 7 + PostgreSQL 16 (backend), Nuxt 4 + Vue 3 + Nuxt UI 4 + Pinia + Zod (frontend), BullMQ + Redis 7, MinIO, Nodemailer + Mailpit, Docker Compose for the whole stack.

Status

Active development. Private repo.

cativo.dev API·checking…·自家管理
--:--:--·UTC-6 SV
GitHub·LinkedIn·X·© 2026