Sell globally. Grow your revenue.
Sell globally. Grow your revenue. Card and monthly payments for freelancers, agencies and SaaS from 190+ countries, with tax and invoices handled. No company needed.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Repository for DogArmor, a dog gear recommender that can find your dog the perfect harness, leash, and collar.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
The right harness, collar and leash for your dog, picked from one photo and a few questions.
• Recognizes your dog from a single photo (118 breeds, blended for mixes) and checks there is a dog in the photo at all.
• Estimates the measurements that decide fit: weight, neck, chest girth, belly and back length. You can replace any of them with a real measurement.
• Picks a harness, collar and leash that fit those measurements, your dog's behavior, where you walk and your budget, and explains every pick.
No account needed. Photos are analyzed in memory and never stored.檢視完整 README ↗The right harness, collar and leash for your dog, picked from one photo and a few questions.
Try it live: dogarmor.up.railway.app
A 1:19 walkthrough of the live demo: choosing gear, uploading a photo, adjusting measurements, answering the questions and opening the recommended harness on Amazon.
The video file lives in this repo at docs/dogarmor-demo.mp4; the thumbnail streams it through jsDelivr so it plays in the browser.
No account needed. Photos are analyzed in memory and never stored.
Pick a harness, collar, leash or any mix. DogArmor only recommends, and budgets for, what you choose.
Take it from the side at your dog's eye level, with your dog standing and its face visible. Front-on shots and head close-ups hide the body and make the breed harder to read. DogArmor shows its top three breed matches. Click a different one if it got it wrong.
Measurements are estimated from the breed and its build, not measured from the photo. Fields marked Estimated can be overwritten. Enter a real weight and the girths recalculate around it.
Thirteen quick questions about behavior (pulling, reactivity, training, energy), activities (hiking, hunting, water, sports), climate and gear upkeep. Then pick a budget; the price ranges add up only the gear you chose (a harness alone is under $30, $30 to $60, or no limit).
Each item you asked for comes with the reasons it was chosen, the size to order, two alternatives and links to Amazon and Chewy, plus material and safety notes for your dog.
| Stage | What happens |
|---|---|
| Breed recognition | EfficientNetV2-S (ImageNet weights) exported to ONNX and run with ONNX Runtime, about 20 ms per photo on CPU. Its non-dog classes double as a "no dog found" check. |
| Measurements | Each breed has a typical adult weight range and build (standard, sighthound, stocky, long-backed). Girths and back length scale with the cube root of weight, adjusted for build. Mixed breeds blend the top matches by confidence. |
| Recommendation | A curated catalog of 36 products, each tagged with features, material, price and fit range. Answers add weight to the tags that matter for your dog. Products that don't fit or exceed the budget are filtered out, and the highest scoring harness, collar and leash win. |
| Safety rules | No head halters for flat-faced or toy breeds, harness-first advice for small dogs, martingales for sighthounds. |
Accuracy: on everyday dog photos the model names the exact breed 81% of the time, and the right breed is in its top three 97% of the time.
Limits: a single photo has no scale, so measurements are breed-based estimates. For the most precise sizing, measure your dog and enter the numbers. Prices are typical and change often.
Requires Python 3.12.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python run.py # http://localhost:5000
| Task | Command |
|---|---|
| Run tests | pip install pytest && python -m pytest |
| Rebuild CSS after editing templates | npm install && npm run build:css |
| Regenerate the model file | pip install torch torchvision onnx onnxscript && python -m src.features.export_onnx |
| Endpoint | Purpose |
|---|---|
POST /api/analyze | Multipart image → breed matches, dog check and measurement estimate |
GET /api/estimate?breed=&weight= | Measurements for a breed and/or known weight |
POST /api/recommend | JSON profile → picks for the requested gear (any of harness, collar, leash), alternatives, extras and notes |
GET /api/breeds | All supported breed names |
GET /healthz | Health check |
Production runs on Railway from the Dockerfile (gunicorn). Pushes to main deploy automatically. Service settings live in .railway/railway.ts: preview changes with railway config plan and apply them with railway config apply. To deploy manually, run railway up --service web.
app/
routes.py pages and JSON API
templates/ Jinja templates (Tailwind)
static/ compiled CSS, demo.js, images
src/features/
breed_predictor.py ONNX inference and measurement estimates
gear_recommender.py scoring engine
export_onnx.py builds models/breed_classifier.onnx
data/processed_data/
breed_profiles.csv weight range, build and coat for 118 breeds
gear_catalog.json product catalog
models/ breed_classifier.onnx
tests/ pytest suite
Built by Vihaan Kesharwani (design and frontend) and Anto Francis (models and backend). Questions or business inquiries: [email protected]
Image and dataset credits are in Citations.md.