Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CareKeeper

Keep your plants, fish, and pets thriving — together with family and roommates.

Language: English | 中文


Plant health dashboard    Fish health dashboard    Logging a care action


What Is This?

CareKeeper helps you and your household keep track of who last cared for your living things — and when they need attention next.

The problem it solves: You water a plant, but your roommate doesn't know and waters it again (overwatering). Or nobody feeds the fish because everyone assumes someone else did it. Sound familiar?

How it works: Each plant, fish, or pet has a "health bar" that slowly drops over time. When someone logs a care action (watering, feeding, walking), the bar resets to 100%. Everyone in your household sees the same bar in real time.

100% ████████████████████ Just watered!
 75% ███████████████      1.75 days ago
 50% ██████████           3.5 days later...
 25% █████               Getting low...
  0%                     HELP! Needs care now!

No more guessing. No more "did you feed the fish?" No more forgotten plants dying in the corner.

Who Is This For?

  • Roommates sharing plant watering duties
  • Families with pets (who fed the cat today?)
  • Couples caring for an aquarium together
  • Anyone who forgets to water their plants (no judgment)
  • People who want a gentle reminder system without annoying notifications

Key Features

Collaborative Care Tracking

  • Shared rooms — Create a room, share a 6-character code, done. No accounts needed.
  • Health bar — See at a glance what needs care and what's fine.
  • Action history — Know who did what, and when.
  • Backdate — Forgot to log yesterday? No problem.
  • Photo log — Snap a photo when you care.

AI Photo Diagnosis (New)

Something looks wrong with your plant? Fish acting strange? Take a photo and let AI figure it out.

AI identifies species and health    Step-by-step treatment plan    Daily care tips

  • Identifies the species from a photo
  • Scores health on a 0-100 scale
  • Explains what's wrong in plain language
  • Gives step-by-step treatment (with where to buy materials)
  • Suggests daily care routines
  • Follow-up chat for more questions

Works with any species — plants, fish, cats, dogs, birds, reptiles, anything alive.

Bring your own AI key (OpenRouter recommended). Your key stays in your browser — we never see it.

Getting Started

Option 1: Use the web app (easiest)

git clone https://github.com/EyanJin/CareKeeper.git
cd CareKeeper/packages/web
npm install
npm run dev

Open http://localhost:5173 and you're done. Create a room, share the code with your household.

Everything works offline with browser storage by default. No backend setup needed for personal use.

Option 2: WeChat Mini-Program (China)

If you're in China, you can use the WeChat version:

cd examples/wechat-miniprogram
# Open in WeChat DevTools, configure your cloud environment

See docs/deploy-wechat.md for setup.

Option 3: Multi-device sync

Want the same data on your phone and laptop? Set up a real backend:

cp packages/web/.env.example packages/web/.env
# Edit .env: choose firebase or supabase, add your credentials

See docs/deploy-web.md for Firebase/Supabase guides.

Setting Up AI Diagnosis (Optional)

The AI diagnosis feature is free to try in demo mode (no key needed). To use it for real:

  1. Click ⚙️ in the app header
  2. Choose OpenRouter (recommended — works directly in browser, no extra setup)
  3. Get a free key at openrouter.ai
  4. Paste your key, test the connection, save
  5. Now "AI Diagnose" will analyze your real photos

AI provider settings

Other supported providers: OpenAI (GPT-4o), DashScope (通义千问), DeepSeek, or any OpenAI-compatible API.

Customize Your Species

You're not limited to plants and fish. Track anything:

{
  id: 'cat',
  name: 'Cat',
  icon: '🐱',
  decayDays: 1,        // needs feeding every day
  actionLabel: 'Feed',
  color: '#ff6b35',
  colorLight: '#ffa07a',
  category: 'mammal',  // helps AI give better diagnosis
}

More examples: dogs (decayDays: 0.5 for walks), succulents (decayDays: 14), medication reminders (decayDays: 1).

See docs/customization.md.

For Developers

Project Structure

CareKeeper/
├── packages/
│   ├── core/                  # Health calculation + AI diagnosis engine (TypeScript)
│   │   └── src/diagnosis/     # Prompt builder, response parser, types
│   └── web/                   # React + Vite + Tailwind web app
│       └── src/
│           ├── adapters/      # Firebase / Supabase / Mock (localStorage)
│           ├── components/    # UI components
│           ├── hooks/         # React hooks (useActions, useDiagnosis, useChat)
│           ├── lib/           # AI client, image compression
│           └── pages/         # Dashboard, Diagnosis, Chat, Settings
├── examples/
│   └── wechat-miniprogram/    # WeChat mini-program example
└── docs/                      # Guides + CORS proxy template

Tech Stack

Layer Technology
Core TypeScript, zero dependencies
Web React 19, Vite, Tailwind CSS
AI OpenAI-compatible API (bring your own key)
Backend Firebase, Supabase, or localStorage
WeChat Native mini-program + CloudBase

Development

# Run tests (55 tests)
cd packages/core && npm install && npm test

# Dev server
cd packages/web && npm install && npm run dev

# Type check
cd packages/web && npx tsc --noEmit

# Production build
cd packages/web && npm run build

# Generate screenshots
cd packages/web && node scripts/screenshot.mjs

Contributing

Contributions welcome:

  • New species presets and diagnosis demo data
  • Platform ports (iOS, Android, Telegram bot)
  • AI provider integrations
  • UI themes
  • Translations
  • Bug fixes

License

MIT

About

Collaborative care tracker for plants, fish, and pets. Time-decay health model + room sharing. Web (React/Firebase/Supabase) + WeChat Mini-Program.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages