-
Notifications
You must be signed in to change notification settings - Fork 0
Tech Stack
harshcode1 edited this page Jun 20, 2026
·
1 revision
Every significant dependency and the reasoning behind it.
| Package | Version | Why |
|---|---|---|
next |
14.2.x | App Router, Route Handlers, streaming, image optimization — one framework for UI + API |
react / react-dom
|
18 | Concurrent features, Suspense |
| Package | Why |
|---|---|
tailwindcss 3 |
Utility-first styling; the project extends the theme with a custom design-token system (brand/mint/calm/ink color scales, soft shadows, therapeutic animation timings) — see Design-System |
framer-motion 12 |
Page/element transitions, AnimatePresence, and a shared-layout (layoutId) animated nav indicator |
lucide-react |
Consistent, lightweight icon set |
clsx / tailwind-merge
|
Conditional class composition without specificity bugs |
| Package | Why |
|---|---|
recharts 3 |
Declarative charts (area, line, bar, scatter). Used for mood trends, assessment trends, activity-impact, and a mood↔severity correlation scatter with a Pearson coefficient |
| Package | Why |
|---|---|
mongodb 6 |
Official driver, accessed via a cached clientPromise so hot-reload in dev doesn't open a new connection per request |
mongoose |
Available for schema modeling |
| Package | Why |
|---|---|
jsonwebtoken |
Signs/verifies the session JWT stored in an httpOnly cookie |
bcryptjs |
Password hashing |
otplib 13 |
TOTP two-factor authentication (authenticator-app codes) |
qrcode |
Renders the TOTP provisioning QR during 2FA setup |
js-cookie |
Minimal client-side cookie reads |
jose |
JWT utilities usable in edge contexts |
Note on
otplib13: the v13 API requires explicit crypto plugins.twoFactorAuth.jswires up the Noble crypto + Scure base32 plugins so TOTP works in the Node runtime.
| Package | Why |
|---|---|
openai 4 |
AI chat companion using gpt-4o-mini. The system prompt injects the user's recent mood + latest assessment scores for personalized, safety-aware replies; a keyword fallback runs if no API key is configured |
googleapis |
Google Calendar OAuth + event creation, so booked appointments appear on the doctor's calendar |
| Package | Why |
|---|---|
eslint + eslint-config-next
|
Linting aligned with Next.js best practices |
postcss + autoprefixer
|
Tailwind's build pipeline |
-
next-auth— installed but never used. Removed to avoid running two parallel auth systems alongside the custom JWT layer.