Functional Overview
Vetty is a multi-tenant SaaS that bundles three audiences into one platform:
- Clinics (and pharmacies / retail / breeders / groomers / trainers) — full operations app.
- Pet owners — consumer mobile + web with marketplace, payments, sharing, lost-pet collar tag.
- Platform operators — Filament admin panel.
What Vetty does
For clinics
- Stores clinic data, patient (pet) profiles, client (owner) contacts and medical flags.
- Records visits with full SOAP narrative + vitals; produces discharge-summary PDFs.
- Maintains prescriptions (with multi-line items + refill counters) and lab results.
- Polymorphic medical attachments hang off any clinical row.
- Schedules appointments with workflow tracking (
scheduled / confirmed / checked_in / with_vet / completed / cancelled / no_show). - Issues estimates, converts to invoices atomically, records payments, refunds, receipt PDFs (download + email).
- Tracks inventory of medicines with batch / expiry / kind taxonomy and append-only stock movements.
- Manages suppliers and purchase orders with a receive-shipment flow.
- Sends operator-initiated reminders through a driver-abstracted notification stack.
- Audits every change.
For pet owners
- Pet profiles with vaccinations, health journal, documents, and timeline.
- Pet sharing — short QR codes for clinics + email-based caregiver invites for family.
- Lost-pet collar tag — public profile reachable via slug, with toggleable lost mode.
- Pet passport PDF + per-vaccination certificate PDFs.
- Provider marketplace — search clinics / pharmacies / breeders / groomers / trainers by geo + business type.
- Order requests — refill / reorder / custom orders to pharmacy + retail tenants.
- Razorpay payments for invoices.
- Cross-tenant statement PDF.
For platform operators
- Tenant lifecycle (provision, suspend, plan changes).
- Notification settings per tenant (driver creds, from address, SMS provider scaffold).
- Cross-tenant audit log.
- Permission catalog + role bundles.
Who uses it
| Role | Where | What they do |
|---|---|---|
| System Admin | /systemadmin (Filament) | Provision tenants, manage plans, review audit log, support |
| Clinic Admin | React SPA | Configure clinic, invite staff, set permissions, edit currency / timezone |
| Veterinarian | React SPA + vetdoctor app | Run consultations, write SOAP notes, prescribe, manage schedule (web); scan-QR-to-adopt + glance at today's schedule (mobile) |
| Clinic Staff (front desk, pharmacy, retail counter) | React SPA + vetdoctor | Check-in / queue / billing / inventory + dispense |
| Pharmacy / Retail tenant | React SPA (seller view) | Order-request inbox + accept / reject / fulfill |
| Pet Owner | React SPA (owner web portal) + vetty app | Pets, vaccinations, marketplace, orders, payments, caregivers, public profile |
| Caregiver (family) | vetty app | Read-only or full access to a shared pet |
Guided tour
Three pillars cover the whole product:
- User roles — who can do what (and the permission keys behind every action).
- Product domain — the entities and how they relate.
- Workflows — step-by-step business scenarios:
Then the Feature modules chapter walks each screen the SPA + apps ship today:
- Dashboard
- Patients — visits, prescriptions, lab results, attachments, vaccinations, health journal, documents, timeline
- Appointments
- Billing & Payments — Razorpay flow + receipts + refunds
- Inventory
- Notifications & Reminders — drivers, templates, opt-outs, four transactional jobs
- Caregivers & Pet Sharing
- Pet Safety — collar tag, lost-pet, passport
- Provider Marketplace
- Order Requests (Commerce)
- Reports
Subscription plans + premium gating
Tenants carry a subscription_plan column (trial/starter/growth/premium/enterprise) and a premium_features JSON map of unlocked capability slugs. The RequirePremium middleware reads this map to gate paywalled endpoints (e.g. SMS fan-out, marketplace listing, e-commerce storefront). The plan-to-features matrix is defined in docs and seeded by tenant onboarding.
Status transitions at a glance
| Entity | Happy path | Other terminal states |
|---|---|---|
| Appointment | scheduled → confirmed → checked_in → with_vet → completed | cancelled, no_show |
| Invoice | draft → pending → partial → paid | void |
| Reminder | pending → sent | dismissed, failed |
| Payment | pending → captured | failed, refunded |
| Prescription | draft → active → completed | cancelled |
| Visit | draft → complete | cancelled |
| Order request | pending → accepted → fulfilled | rejected, cancelled |
| Pet caregiver | pending → accepted | revoked |
| Pet share | (active) | revoked, expired |
| Purchase order | draft → ordered → partial → received | cancelled |