Skip to content

Pet healthcare platform

VetLink

VetLink brings several AI-assisted pet health tools into one mobile-friendly web app. Owners can upload or capture a photo of a skin condition, get a predicted condition with a severity level, and ask follow-up questions that an LLM answers in plain language. The platform also includes limping detection, body-condition-based health assessment, appointments and pharmacy inventory tools.

Role
Full-stack and machine learning development
Status
Working web app with live demo.
VetLink landing page: 'Smart Pet Health Care Powered by AI' with cards for skin and mobility AI, health assessment and inventory intelligence

The problem

Dog owners often cannot tell whether a skin problem needs urgent attention, and a vet visit is not always immediately available. A raw model prediction alone is not enough either — owners need to understand what the result means and what to do next.

Approach

I trained an image classification model for dog skin conditions using DINOv2 and a Vision Transformer, served it from a Python inference service, and paired every result with an LLM-powered explanation module. The interface frames results as guidance with a clear medical disclaimer, not as a diagnosis.

What I built

  • Skin condition detection from an uploaded image or the device camera
  • Predicted condition with severity level and confidence
  • AI health assistant that explains the condition, severity and basic care
  • Limping detection and body-condition-based health assessment
  • Pet profiles, appointment scheduling and pharmacy inventory tools
  • Downloadable analysis report

Architecture

Next.js App Router frontend in TypeScript. A separate Python inference service runs the DINOv2 + ViT model. An LLM generates the plain-language explanations. PostgreSQL stores pets, health records and analytics, and REST APIs connect the web app to the AI services.

Next.jsTypeScriptPythonDINOv2Vision TransformerLLM integrationPostgreSQLTailwind CSS

Key decisions

Separate Python service for inference

Keeping the model in its own Python service lets the ML stack evolve independently of the web app and keeps heavy inference work off the Next.js server.

Pretrained vision backbone

Starting from DINOv2 features rather than training from scratch is a practical choice when labelled veterinary images are limited.

Explanations and disclaimers alongside predictions

Each result is paired with guided follow-up questions and a visible disclaimer that the analysis does not replace a veterinarian, so owners get context rather than a bare label.

Screens

VetLink dog skin disease detection screen with image upload and camera options and image requirements
Image upload for skin condition detection.
VetLink detection results showing a predicted condition, severity level, confidence bar, AI health assistant prompts and a medical disclaimer
Results with severity, guided explanations and disclaimer.

Related services

If you are building a pet healthcare platform or something close to it, tell me about it. I will share how I would approach it and what would affect the scope.