😸 Pet Feeding Tracker 是一款 Ruby on Rails 軟體,將分散的 Excel 檔案餵食紀錄轉換為圖表,讓飼主輕鬆追蹤寵物隨時間的進食量,並將年度健康檢查報告集中管理
AI 翻譯
😸 Pet Feeding Tracker is a Ruby on Rails app that turns scattered Excel feeding logs into charts, so owners can easily track how much their pet eats over time. It also keeps annual health checkup rep
健康Ruby · HTMLGitHub @yuhruh上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證😸 Pet Feeding Tracker 是一款 Ruby on Rails 軟體,將分散的 Excel 檔案餵食紀錄轉換為圖表,讓飼主輕鬆追蹤寵物隨時間的進食量,並將年度健康檢查報告集中管理。
AI 翻譯
😸 Pet Feeding Tracker is a Ruby on Rails app that turns scattered Excel feeding logs into charts, so owners can easily track how much their pet eats over time. It also keeps annual health checkup reports organized in one place.
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Pet Tracker v4 helps pet owners keep an accurate record of what their pets eat, how they feel about it, and how healthy they are. Log each meal, see which foods your pet really loves, keep track of the food in the cupboard, prepare for vet visits, and every month get the current Taiwan prices for the kibbles your pet loves most. Family and pet sitters can help: caregivers record feeding, litter, water and medicine with one tap on the Today page, everyone sees it straight away, and reminders say when a job might be due.檢視完整 README ↗Pet Tracker v4 helps pet owners keep an accurate record of what their pets eat, how they feel about it, and how healthy they are. Log each meal, see which foods your pet really loves, keep track of the food in the cupboard, prepare for vet visits, and every month get the current Taiwan prices for the kibbles your pet loves most. Family and pet sitters can help: caregivers record feeding, litter, water and medicine with one tap on the Today page, everyone sees it straight away, and reminders say when a job might be due.
Who it's for: people caring for cats (or other pets) who want more than memory and receipts: what was served, how much was left, how eagerly it was eaten, and how weight and blood results change over time. It works in English, 繁體中文 and 日本語.
How it fits together:
Under the hood: a server-rendered Rails 8.1 app (Hotwire: Turbo and Stimulus, Tailwind CSS). The same pages serve desktop and mobile browsers, an installable PWA, and an Android app (pet_tracker_android/, Hotwire Native). Background jobs, caching and real-time updates run on the database through Solid Queue, Solid Cache and Solid Cable, so no Redis is needed. Production runs on Railway with PostgreSQL and deploys every push to main. For the full design, see ARCHITECTURE.md.
/doc (in English, 繁體中文 and 日本語) covering every feature below, with a table of contents.Pet Tracker compares what your pet's favorite kibbles cost in Taiwan's online shops, so you can buy the one your pet loves at the best price.
Which kibbles: the ones on your pet's favorite list with a favorite score of 30 or more, fed in the last 4 months (up to 5).
Where prices come from:
Other price-comparison sites such as feebee were ruled out because their terms forbid automated collection.
Matching the right product: shops name products differently from owners (e.g. 室內貓雙響宴 vs 室內雙饗宴). The app compares names character by character, and also checks the brand (under any name you've used for it, e.g. 喵皇奴 / Purrsuit), the species, every protein you named (鴨肉 is never taken for 雞肉), product-line codes like IN27, and the exact variant a price is for.
Fair comparison: each listing's bag size is read from its title (2kg, 300克, 3.3lb, 4kg 2包組…) and prices are ranked by NT$ per kg, cheapest first. Short-dated or repacked stock is left out.
Where to see it: open a pet's profile → Kibble Prices, or the link on the favorite list. Refresh now checks again, once a day. On the 1st of each month the results are also emailed to you, in 繁體中文, 日本語 or English depending on your time zone.
When nothing is found: if neither BigGo nor PChome lists a kibble, the page says "Can't find this kibble in shops right now."
Being a good neighbor: each search is made at most once a month (shared across users), requests are spaced 2 seconds apart and one pet is checked at a time, and BigGo's redirect links, which its robots.txt disallows, are never fetched.
Prices are approximate. Pet Tracker doesn't sell anything and isn't paid by these shops. The design, decisions and test results are recorded in KIBBLE_PRICE_PLAN.md.
Defined in config/recurring.yml and run by Solid Queue in production (server time, UTC):
| Job | When | What it does |
|---|---|---|
CareReminderJob | Every hour at :05 | Sends due litter box and water spot jobs and overdue doses to owners and caregivers who turned reminders on (9am in their own time zone for daily jobs) |
UserBackupJob | Every day at 3am | Emails a CSV backup to users who changed a tracker in the last day |
pet_weight_reminder | Every day at 9am | Reminds owners to weigh their pets, by email or LINE |
purge_expired_sessions | Every day at 4am | Deletes expired sign-in sessions |
MonthlyKibblePriceJob | The 1st of every month at 6am | Checks kibble prices for every pet fed kibble in the last 30 days and emails the results |
clear_solid_queue_finished_jobs | Every hour | Clears finished background jobs |
HouseholdPolicy), with the household always taken from the cat, box or spot, never from a form.rails-i18n and i18n-js (translations shared with Stimulus controllers).bin/jobs worker, see Procfile), with Thruster for HTTP caching and compression. A Kamal configuration is also included.main.You'll need Ruby 3.4.1 and Node.js (for Tailwind CSS and i18n-js). Development and tests use SQLite, so no database server is needed locally; production uses PostgreSQL.
git clone https://github.com/yuhruh/Pet_Feeding_Tracker_v4.git
cd Pet_Feeding_Tracker_v4
bundle install
npm install
bin/rails db:prepare
Procfile.dev):
bin/dev
bin/rails test # unit and integration tests
bin/rails test:system # browser tests (needs Chrome)
Sign-in with Google, LINE or GitHub needs their client IDs and secrets in the environment; email sign-in works without them. Android app notifications need the Firebase service account JSON in FIREBASE_SERVICE_ACCOUNT_JSON (on the web and worker services) and the project's google-services.json in pet_tracker_android/app/ (not committed); without them reminders go by LINE or email.
For step-by-step instructions, open Docs in the app's menu (/doc) or see USAGE.md.
| Where | What's in it |
|---|---|
/doc in the app (app/views/pages/doc.html.erb) | The usage guide for users, in all three languages. The account, pet, dry food, tracker and CSV import sections are written in the view; every other feature is a section under doc_page.feature_sections in config/locales/*.yml, so adding a feature to the guide means adding a section there in each language. |
| USAGE.md | The same usage guide as Markdown |
| ARCHITECTURE.md | How the app is built |
| HOUSEHOLDS_CAREGIVER_PLAN.md | Design and checkpoints for households, caregivers, the Today page and reminders |
| KIBBLE_PRICE_PLAN.md | Design, decisions and test results for the kibble price check |
Contributions are welcome! Please feel free to submit a pull request or open an issue.
This project is licensed under the MIT License.