Inspiration

Our pets are part of our everyday lives, and our phones are filled with thousands of photos capturing those memories. But these photos often remain scattered across galleries, with little context about when, where, or what happened.

Most pet technology focuses on hardware such as smart feeders, trackers, and wearable sensors. We wanted to explore a different question:

What if the device you already have β€” your smartphone β€” could become a digital memory system for your pet?

This inspired us to build PetCMS, a software-only platform that transforms ordinary pet photos into an organized, searchable and intelligent pet memory archive.

What it does

PetCMS automatically turns uploaded pet images into structured memories.

It combines:

  • πŸ“Έ Photo Management – Upload, view, search and manage pet memories.
  • 🧠 AI-Powered Tagging – Uses a user-supplied AI API key to generate meaningful image tags.
  • 🏷️ Editable Tags & Categories – Users can review, edit and manually categorize AI-generated tags.
  • πŸ“ EXIF Intelligence – Extracts GPS coordinates, timestamps and device metadata from photographs.
  • πŸ—ΊοΈ Veterinary Discovery – Uses OpenStreetMap data to identify nearby veterinary clinics based on photo location.
  • πŸ• Pet Memory Timeline – Organizes photographs into a chronological digital memory record.
  • πŸ’¬ Pet Chatbot – Provides a conversational interface over the stored pet information and memories.
  • πŸ” Secure Authentication – Uses JWT-based authentication across independent backend services.
  • βš™οΈ Asynchronous Processing – AI tagging is handled through a Redis-backed job queue rather than blocking uploads.
  • πŸ“Š Observability – Prometheus and Grafana provide live system metrics, request rates, latencies and error visibility.

How we built it

PetCMS was designed as a containerized microservice architecture.

The frontend uses simple HTML, CSS and vanilla JavaScript, while the backend consists of independently deployable services communicating through REST APIs.

The architecture integrates:

  • API Gateway
  • Authentication Service
  • User Service
  • Upload Service
  • Storage Service
  • EXIF Processing Service
  • AI Tagging Service
  • Category Service
  • Search Service
  • Memory Service
  • Chatbot Service
  • Veterinary/Map Service
  • Redis job queue
  • Supabase PostgreSQL and Storage
  • Prometheus
  • Grafana
  • Docker / Docker Compose
  • OpenStreetMap Overpass API
  • External vision-language AI APIs

The system was developed iteratively using a Design Science Research approach: build β†’ test β†’ observe failures β†’ diagnose β†’ fix β†’ verify again.

Challenges we ran into

Building a system that combines multiple independent services and third-party APIs introduced several integration challenges.

We encountered 14 distinct defects, including:

  • Third-party API reliability and timeout problems
  • Identity and validation mismatches between services
  • Silent AI and EXIF processing failures
  • Dependency management problems
  • Data-format mismatches
  • Third-party API changes and deprecations

One major challenge was synchronous AI processing. If the AI provider failed, the entire upload pipeline could be affected.

We redesigned this using a Redis-backed asynchronous job queue, allowing uploads to succeed independently while AI tagging happens in the background.

We also encountered reliability problems with public OpenStreetMap Overpass infrastructure, which motivated caching and graceful degradation strategies.

Accomplishments we're proud of

We successfully built and verified a functioning software-only pet memory platform without requiring users to purchase additional hardware.

Our major accomplishments include:

  • Built a complete microservice-based application.
  • Implemented JWT authentication across multiple backend services.
  • Created an asynchronous AI tagging pipeline.
  • Integrated EXIF metadata into pet memories.
  • Connected real-world geographic metadata with veterinary discovery.
  • Implemented editable AI-generated tags rather than treating AI output as permanent truth.
  • Added a searchable chronological memory system.
  • Added live Prometheus/Grafana observability.
  • Performed end-to-end verification across two development phases.
  • Identified and documented 14 real defects instead of hiding implementation failures.
  • Added graceful handling for external service failures.

Most importantly, we learned that building a reliable AI-enabled system is not only about making the AI work β€” it is about designing what happens when the AI, network or external service doesn't work.

What we learned

We learned that integrating multiple technologies is significantly more challenging than building each component independently.

Some of our biggest lessons were:

AI needs failure handling. External AI services can fail, timeout or return unexpected results. AI should therefore be treated as an unreliable dependency rather than a guaranteed component.

Metadata can become useful context. EXIF information such as time and location can transform an ordinary photograph into a searchable memory.

AI output should remain editable. AI-generated tags are suggestions, not ground truth. Keeping humans in the loop allows users to correct and refine their memories.

Microservices require integration discipline. Independent services introduce challenges involving authentication, data formats, dependencies and communication contracts.

Observability matters. Prometheus and Grafana helped us see actual system behavior instead of relying only on assumptions from application logs.

Failures are valuable engineering evidence. The 14 defects discovered during development helped us improve the architecture and directly influenced the second development phase.

What's next for PetCMS

Our next goal is to move PetCMS from a verified prototype toward a more thoroughly evaluated research system.

Future improvements include:

  • Benchmarking AI tagging accuracy against a ground-truth pet image dataset.
  • Conducting a real user study with pet owners.
  • Load testing for multi-user and multi-tenant environments.
  • Improving Redis queue persistence and recovery.
  • Developing stronger resilience strategies for OpenStreetMap services.
  • Improving chatbot reasoning over long-term pet memories.
  • Adding energy and carbon tracking for AI API usage.
  • Exploring privacy-preserving approaches for pet photos and metadata.
  • Improving the timeline into a richer digital pet life record.
  • Investigating how human feedback can reduce or correct AI hallucinations in pet-memory and chatbot responses.

Ultimately, we want PetCMS to evolve from a photo organizer into a trusted digital memory layer for the relationship between people and their pets.

Built With

Share this project:

Updates

Submission history