No description
Find a file
Mannu 678cf65d70 feat: DB-backed notification system with vaccine + activity nudges
Migration (0009): notifications table with unique daily/weekly slots,
is_read column, metadata JSONB for vaccine info. No more localStorage
for read state — syncs across devices.

API GET /api/notifications?childId=:
- Generates vaccine notifications (upsert, filtered by given vaccines at query time)
- log_nudge: if no feed/diaper/sleep logged today after noon IST
- memory_nudge: if no photo added to memories today
- garment_nudge: if wardrobe < 10 items (once per week slot)
- Returns unread first, then recent read, limit 60

API PATCH /api/notifications  — mark all read for family+child
API PATCH /api/notifications/[id] — mark single notification read

Page /notifications:
- Fetches from real API (no hardcoded mock data)
- Optimistic mark-read on tap, navigates to actionUrl
- Colored cards per type (red=vaccine, amber=log, purple=memory, pink=garment)
- Unread badge + Mark all read button in sticky header
- Legend row at bottom

debug-migration: added notifications table CREATE IF NOT EXISTS for hot-apply

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 09:33:51 +05:30
docker/init-db chore: initial setup 2026-05-10 03:33:32 +05:30
docs Security hardening: auth, bcrypt, rate-limiting, RLS, audit 2026-05-16 23:11:01 +05:30
drizzle feat: DB-backed notification system with vaccine + activity nudges 2026-05-29 09:33:51 +05:30
public Wardrobe: gallery picker + non-blocking vision AI; add /api/time endpoint 2026-05-28 23:31:18 +05:30
scripts feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
src feat: DB-backed notification system with vaccine + activity nudges 2026-05-29 09:33:51 +05:30
.dockerignore feat(db): wire migration runner into the deploy pipeline 2026-05-23 13:40:30 +05:30
.gitignore feat(db): wire migration runner into the deploy pipeline 2026-05-23 13:40:30 +05:30
CLAUDE.md docs+fix: overhaul CLAUDE.md + expose emailStatus in invite response 2026-05-24 15:15:53 +05:30
docker-compose.dev.yml chore(dev): align dev Postgres to pg18 matching production 2026-05-23 14:22:15 +05:30
Dockerfile feat(db): wire migration runner into the deploy pipeline 2026-05-23 13:40:30 +05:30
drizzle.config.ts feat: add Drizzle config and auth/family schema 2026-05-10 04:08:39 +05:30
next-env.d.ts Security hardening - all 8 patches applied 2026-05-16 23:59:43 +05:30
next.config.ts feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
package-lock.json fix: build errors and simplify auth 2026-05-10 04:14:23 +05:30
package.json feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
pnpm-lock.yaml feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
pnpm-workspace.yaml Fix FamilyProvider error handling 2026-05-11 00:12:00 +05:30
postcss.config.mjs chore: initial setup 2026-05-10 03:33:32 +05:30
Project_tia.md chore: initial setup 2026-05-10 03:33:32 +05:30
README.md chore: initial setup 2026-05-10 03:33:32 +05:30
tsconfig.json feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
vitest.config.ts feat(quota): storage quota + family-member limits for free tier 2026-05-27 23:21:11 +05:30

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.