😸 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
HealthRuby · HTMLGitHub @yuhruhOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
😸 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.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.