Argos ARGOS
ArgosARGOS
★ WELCOME TO THE ARGOS BLUEPRINT ★ SCROLL TO PLAY ★ 3 PLAYABLE ROLES ★ 5 MAP CATEGORIES ★ 3 PLATFORMS ★ HIGH SCORE: EVERY ANIMAL FINDS ITS PERSON ★ WELCOME TO THE ARGOS BLUEPRINT ★ SCROLL TO PLAY ★ 3 PLAYABLE ROLES ★ 5 MAP CATEGORIES ★ 3 PLATFORMS ★ HIGH SCORE: EVERY ANIMAL FINDS ITS PERSON ★
▸ PRESS START — PRODUCT & TECHNICAL BLUEPRINT

ONE PLATFORM WATCHING OVER EVERY ANIMAL IN THE STORY.

The one you love, the one you treat, and the one still waiting for a home. Argos unifies pet medical records, a citywide discovery map, a real-time lost-and-found network, and an animal-welfare marketplace — for three kinds of people, in one app.

0
PLAYABLE ROLES
0
MAP CATEGORIES
0
PLATFORMS
0
DB TABLES+
0
FEATURES LISTED
0
%RTL PERSIAN
LEVEL 01 — ORIGIN STORY

NAMED AFTER THE WATCHER WHO NEVER SLEEPS

In Greek myth, Argos Panoptes was the hundred-eyed giant entrusted to watch over what mattered most. This product borrows the name on purpose: it exists to make sure no animal — owned, treated, or wandering unclaimed — falls outside someone's care.

Argos
CORE
O
Pet Owner
records·map·alerts
V
Veterinarian
clinic·bookings
S
Supporter/NGO
rescue·relief
A
Admin
moderation
🐾
Street Animals
the why
Everyone else
finders
Illustrated dog, cat, bird and rabbit around a food bowl
EVERY FEATURE TRACES BACK TO ONE MOMENT: SOMEONE TAKING CARE OF AN ANIMAL.
LEVEL 02 — SELECT YOUR CHARACTER

THREE DOORS, ONE BUILDING

Argos doesn't force a single generic dashboard on everyone. Pick a character below to see how its home screen, tools and priorities differ — while the map, chat and notification engine underneath stay exactly the same.

PLAYER 1 — OWNER
Pet parent mode
PLAYER 2 — VET
Clinic mode
PLAYER 3 — SUPPORTER
Rescue mode
CLASS: PET OWNER

EVERYTHING YOUR PET'S FILE NEEDS, IN YOUR POCKET

  • Unlimited pet profiles with vaccine & treatment history
  • Unique pet ID + scannable QR profile card
  • One-tap lost-pet alert, broadcast citywide
  • Browse and apply to surrender / adoption listings
  • Book in-person vet appointments in a few taps
  • Chat directly with finders, applicants, and clinics
CLASS: VETERINARIAN

A VERIFIED CLINIC PROFILE THAT BOOKS ITS OWN PATIENTS

  • One verified clinic profile, pinned on the map
  • Configurable weekly availability & auto-generated visit slots
  • Instant notification + contact info on every booking
  • Patient lookup by 10-digit pet ID or QR scan
  • Public star ratings & written reviews
  • Upcoming-appointments list on the dashboard
CLASS: SUPPORTER / NGO

BUILT FOR OUTREACH, NOT JUST RECORD-KEEPING

  • Organization profile: mission, city, socials, map pin
  • Requires admin approval before posting publicly
  • Every listing auto-boosted & broadcast to the whole city, free
  • Can register & track fostered/rescued animals like an owner
  • Full parity with the Owner dashboard, tuned for outreach
  • Gender-aware default avatars if no photo is set

▸ FULL FEATURE MATRIX

CapabilityOwnerVetSupporterAdmin
Register & manage pets
Post map listingsauto✔ boosted✔ any
Broadcast lost-pet alert
Run a verified clinic
Configure appointment slots
Requires approval to post
Approve / reject accounts
Boost / un-boost any listingown onlyown onlyauto
Bulk delete by filter
City-wide analytics
LEVEL 03 — POWER-UPS COLLECTED

THE FULL FEATURE CATALOG

Grouped by the job each feature does. Tap any card to expand it — this cartridge holds more than sixty individually shipped features.

🩹 PET HEALTH RECORDS

LIVE

Structured medical profile

Species, breed, gender, birth date on the Jalali calendar, microchip & sterilization status, profile photo.

Vaccine log

Timestamped vaccine records, editable by the owner or an attending vet, with dates and vaccine names.

Treatment history

Free-form treatment notes attached to a pet's timeline, building a running medical story.

Unique pet ID

Every pet gets a permanent identifier the moment it's registered — the backbone of QR lookup and vet search.

QR profile card

A generated QR code links straight to the pet's profile, so any vet or finder can pull it up instantly.

Species-matched avatars

Dog, cat, bird, turtle, and rabbit default illustrations, used automatically when no photo is set.

Dog
DOG
Cat
CAT
Bird
BIRD
Rabbit
OTHER
Turtle
REPTILE

🗺️ DISCOVERY MAP & LISTINGS

LIVE
🩺
VET CLINIC
🛍️
PET SHOP
🏠
SURRENDER
💛
SUPPORT
🚨
LOST PET
Veterinary clinics
Pet shops
Surrender / adoption
Needs support & lost pets

City-aware feed

Auto-detects the visitor's city from geolocation on load.

Province-grouped picker

Manual city fallback, alphabetically sorted, multi-select chips, "all of Iran" toggle.

Boost & ranking

Listings boosted for a set number of days, newest-boosted sorted first with a rocket badge.

Pre-login map preview

The landing screen shows a live map above the fold to signed-out visitors.

Category filters

Filter by any single category or view all five at once, with matching colors and icons.

Mini-map on every listing

Each listing detail includes an embedded preview map plus a "view on map" deep link.

🚨 LOST & FOUND NETWORK

LIVE
1

OWNER RAISES THE ALARM

One tap from the pet's profile — or a pin dropped on the map — files a lost-pet alert with the current GPS location.

2

CITY-WIDE BROADCAST

A free 72-hour boosted map listing is created automatically; every user resolved to that city gets a push + in-app notification and an auto-generated story with a red ring.

3

72-HOUR COOLDOWN

The same pet can't be re-alerted for 72 hours, preventing accidental duplicate broadcasts.

4

"I SAW THIS PET" REPORTING

Anyone who spots the animal opens a dedicated report screen and starts a private thread with the owner.

5

DIRECT CONTACT, BOTH WAYS

Both sides get an in-thread call button and real-time chat until the pet is safely back home.

🏡 ADOPTION & SURRENDER WORKFLOW

LIVE
1

APPLICANT REQUESTS

A prospective adopter applies to a surrender listing with a short message.

2

OWNER DRAFTS A COMMITMENT FORM

The current owner attaches custom clauses the new caretaker must agree to.

3

APPLICANT SIGNS (OR DECLINES)

Signing unlocks a private chat and revealed phone numbers on both sides.

4

FINALIZE THE TRANSFER

The owner confirms the handover is complete, closing every other pending applicant automatically.

📅 VETERINARY APPOINTMENTS

LIVE

Rule-based weekly schedule

e.g. Saturdays 09:00–14:00, Mondays 15:00–21:00 — with its own visit length.

Auto-generated time slots

Each window is sliced into fixed-length appointments; already-booked slots are hidden.

14-day booking window

Patients pick a day, then an open slot, then confirm with name and phone.

Instant vet notification

A booking pushes straight to the clinic with the patient's info.

Upcoming appointments list

The clinic dashboard shows every booked visit, soonest first.

Double-booking proof

Database-level uniqueness on clinic + date + time — two patients can never grab the same slot.

🎥 online telehealth consultations — coming soon

⭐ REVIEWS & TRUST

LIVE

1–5 star ratings

Any signed-in user can rate and review a veterinary clinic once, editable any time.

Aggregate scoring

Clinics show an averaged rating with total review count on both the map popup and full listing view.

Written comments

Optional free-text reviews displayed newest-first beneath the star summary.

🔔 COMMUNITY & NOTIFICATIONS

LIVE

Stories bar

Instagram-style circles for admin announcements and lost-pet alerts, red ring for lost pets.

Unified notification center

Web push plus an in-app bell with unread counts from messages, requests, and bookings alike.

Guided first-run tour

A spotlight-style walkthrough highlights every major control the first time a new owner arrives.

Offline-first fallback

A dedicated offline screen and service-worker cache keep the app usable when connectivity drops.

Blinking unread badge

The bottom-nav heart icon turns solid red and pulses when there's something new to see.

Terms & permissions page

A plain-language explainer of location use, phone visibility, and data handling.

🛍️ PET MARKETPLACE

COMING SOON

Storefront per shop

A minimal, uniform template — 10 products free, then a flat monthly fee per extra listing.

Cart, checkout & payment

Full cart → confirm → payment gateway → order-status flow, shared across every shop.

Configurable fulfillment

Sellers choose courier, post, or Tipax per order; postal shipments get in-app tracking.

Promotions & discounts

Sellers can run time-boxed sales and discount pricing on individual products.

LEVEL 04 — BOSS BATTLES

HARD PROBLEMS, SOLVED

Real engineering challenges encountered while building this — and the fix that beat each one.

⚔ BOSS: THE STALE CACHE

DEPLOYS THAT WOULDN'T SHOW UP

Symptom: Fresh code deployed to the server, but users kept seeing the old version.

Root cause: index.html — the file that points to the current JS bundle — had no cache-control header, so browsers held onto it indefinitely.

Fix: Force index.html to always revalidate, while hashed /assets/ bundles cache forever — every deploy is instantly visible.

⚔ BOSS: THE Z-INDEX GHOST

THE MAP THAT WOULDN'T STAY BEHIND

Symptom: Full-screen dialogs and city pickers kept showing the Leaflet map bleeding through on top.

Root cause: Leaflet's own control layers use a z-index up to 1000 — higher than most app overlays.

Fix: Every full-screen overlay was audited and raised above Leaflet's stacking range.

⚔ BOSS: THE VANISHING KEYBOARD INPUT

CHAT SEND BUTTONS HIDING BEHIND THE KEYBOARD

Symptom: On some mobile browsers, the on-screen keyboard covered the message input.

Fix: Track visualViewport height directly and resize the chat container to match, instead of trusting 100vh.

⚔ BOSS: THE DOUBLE-BOOKED APPOINTMENT

TWO PATIENTS, ONE TIME SLOT

Symptom: Two people could theoretically book the exact same visit slot in a race condition.

Fix: A database-level unique constraint on clinic + date + time makes double-booking impossible, not just unlikely.

LEVEL 05 — UNDER THE HOOD

A SMALL, BORING, RELIABLE STACK

No exotic infrastructure — a single Postgres-backed API, one React codebase rendering three shells, and container-per-service deployment behind a single reverse proxy.

FRONTEND

REACT + VITE

Single-page app, Persian RTL, client-side view-state routing with native back-button support.

BACKEND

NODE.JS + EXPRESS

REST API, JWT session tokens, role-based middleware, PostgreSQL via the pg driver.

DATABASE

POSTGRESQL

Relational core plus a generic key-value table for flexible profile blobs.

MAPS

LEAFLET + OSM

Dark/light tile layers, custom markers, popups, in-app location picker.

EDGE

CADDY

Automatic HTTPS, reverse-proxies each subdomain to its own container.

ORCHESTRATION

DOCKER COMPOSE

Four independently built & deployed services: frontend, admin, backend, landing.

DELIVERY

ZERO-CACHE HTML

index.html always revalidated; hashed assets cache forever.

REALTIME

WEB PUSH (VAPID)

Standards-based push with a service-worker fetch handler and offline fallback.

▸ POWER-UPS (LIBRARIES & TOOLS)

⚛️
REACT 18
UI engine
VITE
Build tool
🗺️
LEAFLET
Maps
🐘
POSTGRESQL
Database
🔐
JWT + WEBAUTHN
Auth
📦
DOCKER COMPOSE
Orchestration
🌐
CADDY
Reverse proxy
🔔
WEB PUSH / VAPID
Notifications
📷
BARCODEDETECTOR
QR scanning
🤖
BUBBLEWRAP
Android TWA
🍎
CAPACITOR
iOS wrapper
💬
SMS OTP PROVIDER
Phone auth

▸ CORE DATA MODEL

TABLEPURPOSE
usersPhone-authenticated accounts, one of owner/vet/supporter, with an approved gate for supporters.
kv_storagePer-user JSON profile blobs (pet records, clinic details, supporter org info).
map_itemsEvery discoverable pin — clinics, shops, surrenders, support cases, lost-pet alerts.
adoption_requests/forms/messagesThe full surrender-to-adoption pipeline and its resulting private chat.
sightings/sighting_messages"I saw this pet" reports and their private chat threads.
vet_appointmentsBooked visit slots, unique per clinic/date/time.
vet_reviewsOne rating + review per user per clinic.
notifications/storiesCity-scoped and user-scoped alerts; ephemeral story posts.
visits/installsAnonymous visit and install analytics, resolved to city/province.

▸ SYSTEM STATUS

Uptime target99.5%
Live features shipped85%
Platform coverage (Web/Android/iOS)100%
Marketplace & telehealth15%
LEVEL 06 — MULTIPLAYER, EVERY DEVICE

ONE BUILD, THREE DISTRIBUTION CHANNELS

Argos ships from a single web codebase, wrapped natively for each platform rather than maintained as three separate apps.

Core account & role system — 20%
Map & discovery — 20%
Adoption & lost-and-found — 20%
Vet booking & reviews — 20%
Notifications, admin & ops — 20%
🌐

WEB / PWA

  • Installable from any modern browser
  • iOS-tuned meta tags, safe-area insets, Apple touch icon
  • Offline fallback screen & service-worker caching
  • Full dark/light theming, RTL Persian layout
🤖

ANDROID (TWA)

  • Trusted Web Activity via Bubblewrap — a real installable APK
  • Distributed via direct APK, Cafe Bazaar, and Myket
  • Digital Asset Links-verified, full-screen, no browser chrome
  • Native install detection via android-app:// referrer
🍎

iOS

  • Capacitor-based native wrapper pointed at the live site
  • Camera, photo library, location & microphone permissions declared
  • App Store-ready asset catalog and launch icon
  • Every web update ships instantly — no store review for content
LEVEL 07 — GAME MASTER TOOLS

A CONTROL ROOM FOR THE WHOLE PLATFORM

A separate admin application — same design language, different mission: moderate, approve, and understand what's happening across every city.

Analytics dashboard

Visits, unique visitors, and native installs by category and period.

Per-category breakdown

Everything on the map, tallied by type — including lost-pet alerts.

Map item management

Search, filter, edit, boost/un-boost, or bulk-delete by type, city, or province.

Owner & phone visibility

Every listing shows its creator's name and phone, both searchable.

User directory

Every account, searchable — with inline editing and deletion.

Approve / reject accounts

One-click approval workflow for supporter and vet accounts.

Content & promotions

Publish admin-authored stories and manage sitewide promotions.

City-level insight

Visit and install analytics resolved down to city and province.

LEVEL 08 — SHIELD POWER-UP

SECURITY BUILT FOR A PHONE-FIRST AUDIENCE

Phone + OTP authentication

SMS one-time codes via a template-based provider integration; no passwords required by default.

Optional biometric login

WebAuthn support for Face ID / fingerprint / Windows Hello as a faster return-visit path.

Role-scoped JWT sessions

Every API request carries a signed token identifying the account's role, enforced server-side.

Supporter vetting

New NGO/supporter accounts stay pending — invisible to the public map — until an admin approves them.

Duplicate-booking protection

Database-level constraints, not just UI checks, prevent race conditions.

Rate-limited alerts

A 72-hour cooldown between lost-pet broadcasts for the same animal.

LEVEL 09 — SPRITE SHEET

DARK BY DEFAULT, WARM AT HEART

A deep navy interface built around a single teal accent, punctuated by warm gold for boosted content and coral red for anything urgent — matched by a hand-illustrated "Adopt · Care · Protect" mark.

BACKGROUND
#0A0E1A
SURFACE
#0F1526
PRIMARY / TEAL
#2DD4BF
SECONDARY
#7C5CFC
GOLD ACCENT
#F5A623
ALERT / RED
#E5484D

Typography, iconography, and copy are all set in Persian (Farsi), right-to-left, with Persian numeral formatting throughout — this document is the English-language exception, written for engineering and business audiences.

LEVEL 10 — NEXT WORLD

ROADMAP

✔ SHIPPED

Full owner / vet / supporter experiences
Lost & found network with city broadcast
Adoption workflow with signed commitment forms
In-person vet appointment booking
Web, Android (TWA), and iOS distribution
Admin analytics, moderation & approvals

◐ IN PROGRESS

Pet shop storefronts, cart & checkout
Online telehealth video consultations
Postal shipment tracking

○ EXPLORING

In-app payments for donations to supporters
Multi-vet clinic staff accounts
Richer analytics for supporter organizations