22 / 24Next →
QR pet recovery & e-commerce platform2026

PetResQR

A full-stack pet-safety and e-commerce platform. Owners manage several pets and their QR tags from one account, a finder can scan a tag to reach the owner by SMS and email, and the built-in shop sells tags with PayHere checkout.

ContextFreelance & personal builds
Year2026
TypeWeb
StatusCompleted
RoleFull-stack engineering
15REST route modules
2Alert channels per scan: SMS and email
8Core domain models

Project media coming soon

Screenshots and demo videos for this case study will appear here.

Overview

Owners create a profile for each pet and attach a physical QR tag to it. When someone finds a lost pet, scanning the tag opens its profile, with the owner's contact details and medical notes, and a form that alerts the owner by SMS and email with a link to where the pet was found. The same platform runs the storefront for tags and accessories, along with orders, accounts and an admin console.

Next.jsExpressMongoDBTypeScriptPayHereTwilioAWS S3Firebase
Challenge

The core journey crosses a physical object, an anonymous finder on a phone, private owner data and payments. A tag had to be sellable before it was assigned, scannable by anyone and impossible to point at the wrong pet. A finder's alert also had to reach the owner even if one notification channel failed.

Approach

I built a Next.js 15 frontend on a TypeScript Express API and MongoDB. Firebase Authentication issues user identities, which the API verifies server-side with the Admin SDK. Twilio sends SMS, Nodemailer sends email, AWS S3 and sharp handle pet photos, and PayHere processes payments. The API uses Helmet, rate limiting, request validation, compression, structured Winston logging and Swagger documentation.

Outcome

One codebase covers the full owner, finder and admin experience: pet profiles, the tag lifecycle, lost-pet recovery, product sales and day-to-day operations.

System architecture
01Web clientNext.js 15 · React 19 · Tailwind

The storefront, owner dashboard, public scan pages and admin panel, with in-browser QR decoding via jsQR.

02APIExpress · TypeScript · Joi · Swagger

Controllers for pets, tags, QR codes, found-pet flows, products, orders, payments and admin, protected by Helmet, rate limits and request validation.

03DataMongoDB · Mongoose

Models for users, pets, tags, QR codes, scan logs, products, orders and notifications, with compound indexes matched to the owner and status queries.

04IdentityFirebase Auth · Admin SDK

Users sign in on the client, and the API verifies every Firebase ID token server-side before trusting it.

05Messaging & mediaTwilio · Nodemailer · AWS S3 · sharp

Finder alerts and activation confirmations go out by SMS and email, and pet photos are resized before upload to S3.

06PaymentsPayHere

Checkout for tags and shop products, with order state driven by payment confirmation.

Engineering decisions
01

Tags and QR codes are separate entities

QR codes are generated in advance as an inventory pool, seeded from a spreadsheet for physical printing. A tag is what the owner buys. On first activation, the tag claims an available code from the pool and the code is marked as used. Reactivating a tag reuses the same code, so a printed tag keeps working after it has been switched off. A tag must be assigned to a pet before it can be activated, and a pet cannot hold two active or pending tags.

02

A finder flow that needs no account

The public scan endpoint resolves only active tags and returns just what a finder needs: the pet's description, medical notes and how to reach the owner. The notify-owner form records where the pet was found, adds a Google Maps link and updates the pet's last-seen location.

03

Alert channels fail independently

Each scan is saved as a scan log. SMS and email are sent separately, so a Twilio failure or an invalid phone number never stops the email, and phone numbers are normalised before sending.

What I built
01QR code inventory, tag purchase, assignment, activation and reactivation lifecycle
02Multi-pet owner dashboard with profiles, photos, medical notes and tag status
03Public found-pet pages with SMS and email alerts, location and map links
04Product variants, cart, orders and PayHere checkout
05Admin analytics and management for users, pets, tags, products and orders, with an audit middleware
Next projectGTIM Mobile →