# VictoriousPed Manual
VictoriousPed (package `com.victorious.victoryped`) covers bully-breed pedigrees, a verified connect-only marketplace, and ABKC show updates. It runs on Android and the web.
## Layout and navigation (mobile-first)
- **Phones and tablets (860px wide or less):** a compact top bar (logo plus a Menu button that opens a side drawer) and a bottom tab bar: **Home, Search, Feed, Store, Profile**. The current tab is highlighted. Profile opens your account, or Log in when signed out.
- **Desktop:** the top bar shows the full menu; there is no tab bar. Content is at most 1,120px wide.
- Lists of cards are 1 column on phones, 2 on tablets and 3 to 4 on desktop. No page scrolls sideways at 360px or wider.
- Every button, field and tab is at least 44px tall. Headings, active tabs, primary buttons and badges use the cyan-to-magenta neon gradient with a soft glow; body text stays plain for readability.
- **Type:** headings use Sora, body text uses Inter (both self-hosted). Body is 17px; h1 is 32px on phones and 48px on desktop.
- **Photos first:** dog, kennel and listing cards show a large edge-to-edge photo (square or 4:5). Dog and kennel pages open with a full-width photo. When there's no photo yet you see neon placeholder art with initials.
- **Home:** a search bar, featured verified kennels (swipe sideways), litters and studs, recent dog photos from the feed, quick links to tools and a store teaser.
- **Menu drawer:** tap Menu to open it; tap the dark backdrop, press Esc or follow a link to close it. On desktop, the current page is underlined with a neon glow.
- While a page loads you see grey placeholder blocks; when a list is empty you see a short message explaining what to do next.
## Getting started
- **Sign in** with your email and a password of 10 or more characters. In v0.1 the Android app keeps the session on the device only. The backend issues real tokens through `/auth/login`.
- Sign in with an email that starts with `reviewer` (for example `reviewer@example.com`) to open the demo reviewer queue.
## Marketplace (connect-only)
- **VictoriousPed does not process payments for animals.** Meet the dog in person or on live video before you pay anyone.
- To post a listing, the dog needs a ๐ Papers Reviewed badge from an **approved registry** (see Approved registries below).
- When ID verification goes live, a ๐ชช ID Verified badge will also be required to post. It is not available yet.
- Messages use masked in-app chat, so no phone number or email is shared. If a message contains a phone number, an email, or a payment method like Zelle, CashApp, gift cards, wires, or crypto, you will see an FTC scam warning.
- Every listing and chat has **Block** and **Report** buttons. Report reasons: scam, stolen photos, fighting, animal cruelty, illegal sale, harassment, other.
- Filter listings by breed, type, state, or "Verified breeders only". Litter and puppy listings need a verified breeder (see Verified breeders below).
## Verified breeders (litter and puppy listings)
Only verified breeders can post **Litter** and **Puppy** listings. Adult and stud-service listings keep the existing rules (approved papers on the dog).
1. Go to **Account โ Breeder verification** (`/breeders/verify`).
2. **Identity check.** Click **Start ID check**. This uses a Stripe Identity-style session. Until a real vendor is configured, the site runs either *not configured* (button shows an error) or *TEST MODE* (`VP_IDENTITY_MODE=test`, for development only). A TEST MODE result is labeled "Stripe Identity (TEST MODE, simulated)" everywhere it appears, so it can never pass for a real ID check.
3. **Registry papers.** Enter your kennel name, pick ABKC, UKC, AKC or ADBA (no other registry is accepted), add your kennel or registration number and upload the papers. Files go to the private bucket and are never public. One application can be pending at a time.
4. Staff (reviewers and admins) open **Breeder queue** (`/admin/breeders`), check the papers by hand against the checklist (legible, names match, approved registry, no tampering) and approve or reject. Approval also needs the identity check to be done. Staff can't review their own application.
5. Once approved, your profile and listings show **โ
Verified breeder**. The badge text names the registry and date and says we are not affiliated with or endorsed by any registry.
Buyers can filter the marketplace by breed, type (litter, puppy, adult, stud), state and **Verified breeders only**, and contact sellers through masked messaging. VictoriousPed never takes payment for animals.
## Verified pet transporters
- Open the directory from More, then Verified transporters, or tap **๐ Contact a transporter** on any listing. Contact always goes through masked chat.
- Each badge names the public record or document that was checked, and the date:
- ๐ชช ID through Stripe Identity
- ๐๏ธ USDA APHIS registrant, checked in the APHIS Public Search Tool
- ๐ USDOT/MC, Authorized on SAFER
- ๐ก๏ธ Insurance COI confirmed with the agent, with its expiry date
- ๐ค IPATA directory listing
- Records are re-checked every 90 days. An insurance badge disappears when the policy ends.
- **VictoriousPed does not certify transporters.** There is no universal "pet transporter license".
- **Legit shippers quote up front. Never pay surprise crate or insurance fees.** Chat flags "crate fee", "insurance fee", "customs", Zelle, and similar requests.
## ABKC live shows and updates
- Show and update items link to the official ABKC pages on abkcdogs.net. **VictoriousPed is not affiliated with or endorsed by ABKC.**
- **ABKC Shows** (`/shows`) lists upcoming shows (past shows drop off after their last day). Filter by breed. Each card shows dates, venue, city, country, notes, and the date staff last checked it against the official calendar. Always confirm details on ABKC; judges and venues change.
- The list is **curated by hand** by staff. There is no ABKC API and nothing is scraped. The first entries were copied from abkcdogs.net/events/list on 2026-10-30 and are labeled **Example data** so nobody mistakes them for a live feed.
- **Admins: managing shows.** Open **Admin โ ABKC shows** (`/admin/shows`). Add a show with its title, dates, venue, city, country, breeds, notes and an official link. The link must be an `https://abkcdogs.net/โฆ` page; anything else is refused. Saving stamps today as the checked date. Edit or **Remove** any show, including the seeded ones (removed seeds don't come back).
- **Go live:** streaming a show needs permission from the show host or ABKC. You must confirm that permission and name who granted it. Streaming (Cloudflare Stream or Mux) is not configured yet, so the button explains that.
## Pedigrees
- Add a dog with its registered name, breed, registry and number, and sire and dam. **New dogs are private** unless you turn on Public profile.
- The lineage tree shows 3 to 5 generations. Private ancestors appear as "Private dog".
- Search by name or registry number, and filter by breed.
## Dog pages
- **Header:** the dog's photo (or its initials until a photo is approved), registered name, call name, and a cyan **Verified** pill when staff reviewed its papers. Imported lineage shows a small grey **Unverified** tag instead. Public dogs have Facebook, X, Text and **Print pedigree** buttons.
- **Details:** registry and registration number, class, color, sex, date of birth, breeder kennel, owner kennel (linked to the owner's public profile), titles on record and page views. Fields we don't have say "Not recorded". Imported dogs never show an owner, breeder or where they were imported from.
- **Pedigree chart:** choose **4 generations** or **5 generations**. Sire lines have a cyan edge and dam lines a magenta edge. Click any ancestor card to open that dog. Private ancestors show as "Private dog". On phones, the generations stack top to bottom.
- **Siblings, Offspring, Litters:** full siblings share both parents. Offspring are grouped into litters by the other parent and the birth date.
- **Gallery:** only photos approved by staff and set to public appear here.
- **Print pedigree** opens a one-page, printer-friendly chart (landscape). It is not an official registry certificate.
- **Report an error:** signed-in members can tell staff about a wrong parent, color, date or number. Reports go to the moderation queue as "pedigree error".
## Badges (three separate badges)
- ๐ชช **ID Verified:** the person's identity, through Stripe Identity. Not live yet. It never covers a dog or paperwork.
- ๐ **Papers Reviewed:** a VictoriousPed reviewer checked your certificate by hand. The badge names the registry, the number, how it was confirmed, and the date. **It is never a registry endorsement**, because no registry offers us an API or partnership.
- ๐งฌ **DNA / Health Tested:** a reviewer checked an uploaded lab certificate. It names the lab and the test. The results are as the lab stated them.
## Approved registries
Only APPROVED registries (ABKC, UKC, AKC and ADBA only) can earn a ๐ badge or back a listing. Some registries are UNDER REVIEW (BBCR, IOEBA, BBKC, and Continental Kennel Club US). You can still submit their papers, but they cannot earn a badge yet. Papers from any other registry, including FCI member clubs, The Kennel Club (UK) and the Canadian Kennel Club, are rejected. See More, then Approved registries, and docs/APPROVED_REGISTRIES.md.
## Reviewer workflow
1. Open More, then Reviewer queue.
2. Check that the certificate is legible, the names match the profile, and there are no signs of tampering. Approval is impossible without all three.
3. Confirm the number manually: use the registry's public status tool where one exists, an owner-provided registry email, or contact with the registry office.
4. Approve or reject. Reviewers cannot review their own submissions.
## Unverified lineage imports
Some dogs come from a public pedigree database rather than an owner. They show a small grey "Unverified" tag next to the name (hover: "Lineage not verified against registry papers"). The import source (name and link) is stored in the database but never shown publicly: it is left out of dog pages, trees, search, and the public API (`source`/`sourceUrl` are stripped from `/dogs/search`, `/dogs/{id}`, `/breeders/{id}`; lineage trees never carry it). Only signed-in reviewers and admins see a "Staff only ยท import Source: โฆ" line on the dog page and get the fields in the API. Their breed shows as "Breed unknown", they have no badges and no owner tools, and the same "Unverified" tag appears in pedigree trees and search results. The **Verified only** box on Pedigrees hides them, and they never count toward marketplace verified status.
Developers (local/dev only; the importer refuses production database URLs):
```
python3 tools/clean_lineage.py # data/import/pitpedia.csv -> pitpedia.clean.csv + report.json
./gradlew :backend:importLineage --args=data/import/pitpedia.clean.csv # into a local Postgres (VP_DATABASE_URL=localhost/db)
VP_DEV_SEED_LINEAGE_CSV=data/import/pitpedia.clean.csv ./gradlew :backend:run # or seed the in-memory dev backend
```
Re-running is safe: rows are upserted by source URL. `data/import/` is gitignored.
## Safety: zero tolerance for dog fighting
Dog fighting is a federal crime (7 U.S.C. ยง 2156). Posting dog-fighting content, including terms like "game-bred", "pit-tested", or "on the keep", **permanently bans** the account and preserves the evidence for possible referral to law enforcement.
## Privacy
- Approximate location only (city or state).
- Dogs are private by default.
- Certificates go to a private bucket that only reviewers can see.
- The Android app requests no location, contacts, camera, or microphone permissions, and cloud backup is off.
## Bully Blueprint store (ebooks and videos)
Bully Blueprint by Victorious Academy sells digital guides and video courses for owners and breeders. It never sells animals.
- **Browse:** open **Store** in the menu. Filter by Ebooks or Videos and open a product to read about it. Products marked **[Sample] / Placeholder** are test items, not real content.
- **Buy:** sign in, tap **Add to cart**, then **Checkout** on the cart page. Payment happens on Stripe's secure page. If the cart says **"The store isn't live yet"**, payments haven't been switched on, so nothing can be bought or charged.
- **My Library:** after paying, your items show up in **My Library** (menu, or Account โบ My Library). Ebooks open in the reader or download as a PDF; download links are private and expire after 10 minutes, so open them again from the library whenever you need them. Videos play in the library.
- **Android:** sign in to the app to see the same library. You can't buy inside the app; buy on the website.
- **Refunds:** a refund or chargeback removes the item from your library.
### Admins: managing products
Go to **Admin โบ Store admin**. Fill in title, description, price (USD, $0.50 to $500), kind (ebook or video), track and level, then upload a cover and the PDF/EPUB file, or paste a Cloudflare Stream video id. New products start as **drafts**. Use **Publish/Unpublish** to show or hide them; an ebook can't be published until its file is uploaded. Click a product's title to edit it.
- **Merch** (tees, paracord, elevated bowls) and **coloring books**.
- **Community feed.**
## Fleet theme (from VictorLaunch)
If VictorLaunch is installed, VictoriousPed reads its shared fleet palette (FLEET_THEME schemaVersion 1) from
`content://com.victorious.launch.theme/current` on start, and re-applies it live when VictorLaunch announces a change.
VictoriousPed only reads; you pick the theme in VictorLaunch โ Settings โ Fleet theme. The provider is only trusted if it
is `com.victorious.launch` signed with the pinned VictorLaunch certificate. If VictorLaunch is missing, not pinned
(ask it to **Trust installed fleet share apps** or add a pin), or sends an unknown schema version, VictoriousPed keeps its
built-in neon ring theme.
## Help
Email support is not set up yet. Report problems from the app's Report button.
## Breeder feed
- **Feed** (`/feed`) shows photo posts with captions, newest first. Anyone can read it. Sign in to post, follow, like and comment. The **Following** tab shows only kennels you follow (and your own posts).
- **Posting:** add a JPEG, PNG or WebP photo (up to 5 MB, optional) and a caption (up to 2,000 characters). Pick a breed if you like. Captions and comments go through the same dog-fighting filter as the rest of the site, which bans on the spot. Don't post prices or sales talk here; use a marketplace listing.
- The **Verified** pill appears only next to breeders whose verification staff approved. Everyone else shows no badge.
- **Report** any post or comment. Reports go to **Feed moderation** (`/admin/social`, reviewers and admins). Staff can **Hide** (removes the post and its photo from the feed), **Keep** (dismiss the reports) or **Restore** a hidden post. Authors and admins can delete a post.
## Pedigree search and tree
- **Search** (`/pedigrees`): choose **Search by**. **Anything** is the default; you can also pick **Dog name** (registered or call name), **Registration #** (exact number, e.g. `ABKC-12345`) or **Kennel**. Only public dogs appear.
- **Tree** (dog page โ Lineage) reads left to right, from the dog to its parents and then further ancestors. **Sire lines are cyan and dam lines are magenta.** On phones it stacks vertically with the same colored side lines. Choose 1โ5 generations.
- Dogs imported from an outside lineage database show a small grey **Unverified** tag. They never get a verified or papers badge, and the public site never names where the data came from. Only staff can see the import source.
## Footer credit
Every page footer ends with "Website made by Victorious Designs" (opens victorious-designs.pages.dev in a new tab) with a 22px icon. Screenshot: screens/47-footer-credit.png.