Week 7/40 — CatAtlas: Same-Cat Matching v0

Tech stack (this week)

  • Frontend: React + TypeScript

  • Backend: FastAPI + SQLite

  • “AI”: explainable heuristic ranking (v0 matching)

New topic: retrieval + ranking with explanations.

Why this week?

I moved from a list of sightings to relationships: suggest when two sightings might be the same cat using simple, explainable logic.

What I shipped

For each sighting:

  • trigger a matching process

  • get a ranked list of possible matches

  • show “why” (simple explanations)

Live site (copy/paste):

https://orange-disco-pj4g9w4w46prh96pw-5173.app.github.dev/


The One Feature Rule

One feature: same-cat suggestions with reasons.
Not doing: computer vision, embeddings, “true” identity resolution.

Follow along (code it yourself): This week’s task

Task: Implement “possible matches” using explainable ranking.

  1. Choose 2–3 signals (example):

    • description word overlap

    • location proximity (if you have it)

    • time proximity (if you have it)

  2. Write a scoring function that produces:

    • score: number

    • reasons: string[] (human-readable)

  3. Create an endpoint:

    • GET /sightings/{id}/matches → returns top N candidates

  4. Render matches under a sighting as:

    • “Possible matches (v0)”

    • score + reasons

Success criteria: You see a ranked list and can explain why the top match is ranked highest.

Extra help & hints

  • “Explainable AI” trick: every score component must generate a reason.

  • Start with tiny datasets (5–10 sightings) to validate logic.

  • Ranking matters more than absolute score.

Previous
Previous

Week 8/40 — CatAtlas: Identity Layer + Tests

Next
Next

Week 6/40 — Making AI Features Feel Real (Caching + Derived Data)