尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证😸 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.