No description
Find a file
Mannu f5d21eea28 fix: home "Vaccine Reminder" showing "undefined due today"
The home banner read fields (.status, .vaccineName) that the DB-backed
notifications API never returns — its DTO exposes {type, title, message,
metadata,...}. So .vaccineName was undefined → "undefined due today", and
.status was undefined → the ternary always fell to the "due today" branch
even for overdue/nudge items.

Two issues, both fixed:
1. Contract mismatch: render the real `message` field instead of the
   non-existent `.vaccineName`/`.status`. message is already correctly built
   server-side ("BCG is due today" / "BCG is 3 days overdue").
2. Wrong source set: the banner consumed the FIRST notification of ANY type.
   Since the API also returns log/memory/garment nudges, a nudge could land
   at index 0 and render under the vaccine header. Now filtered to
   type starting with "vaccine_" before use.

Also hardened the vaccine upsert: ON CONFLICT DO NOTHING -> DO UPDATE SET
title/message/action_url/metadata, so future copy/day-count changes refresh
existing rows instead of freezing the first version (preserves id/is_read).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 02:15: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 Add admin observability: error tracking, audit viewer, AI metrics, health 2026-05-30 00:27:07 +05:30
public fix: patch umami.js to work with Next.js async script injection 2026-05-30 21:21:53 +05:30
scripts feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
src fix: home "Vaccine Reminder" showing "undefined due today" 2026-05-31 02:15: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 feat: Telegram alerting + public health probe + Umami visitor digest 2026-05-30 22:01:18 +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 fix: add analytics.manohargupta.com to CSP connect-src 2026-05-30 21:30:54 +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.