Private mental wellness for Indian exam students.
Students preparing for JEE, NEET, UPSC, CUET, CAT, GATE, and Board exams face months of compounding pressure — performance anxiety, comparison, burnout, and self-doubt with very little space to process it.
Most wellness tools are too clinical, too generic, or too social. Students stay silent.
MindTrack gives students a private, low-friction space to:
- Track mood daily with a 5-point emoji scale
- Name stress triggers (academic, family, social, sleep, health)
- Journal privately — no audience, no judgment
- Spot patterns in a 7-day mood chart
- Access short rituals — box breathing, grounding, self-compassion reset
- Write to the Listener — a safe, reflective space (prototype AI companion with explicit safety boundaries)
Students sign in with Google but are shown only by a self-chosen alias inside the app. Nothing clinical. No real name in the interface. Lower barrier to honest reflection.
- Open the app →
http://localhost:3001 - Log in with Google (or use demo mode if no Firebase env vars present)
- Onboarding → set an alias, exam type (e.g. JEE), phase (e.g. Revision), support preference
- Dashboard → see the bento sanctuary layout; notice exam context and reminder time in the header
- Check-in → submit a mood (try score 1 with "academic pressure" trigger to see the safety card)
- Journal → entries appear here ordered newest first
- Exercises → open box breathing or the grounding ritual
- Listener → write a letter about what feels heavy; receive a gentle, non-clinical response
- Settings → edit alias, exam type, sign out
MindTrack is supportive, not clinical.
It does not diagnose, provide therapy, or act as crisis support.
High-distress check-ins (mood 1/5 + distress triggers) surface a visible safety card directing students toward trusted adults and:
- India Tele MANAS:
14416/1800-89-14416
The Listener screen repeats this boundary explicitly on every session.
| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19, TypeScript |
| Auth | Firebase Authentication (Google) |
| Database | Firestore |
| Icons | Lucide React |
| Tests | Vitest |
| Lint | ESLint + Next.js core web vitals |
npm install
npm run devOpens at http://localhost:3000. Without Firebase env vars, the app runs in local demo mode so the full UI can be explored immediately.
- Create a project at
console.firebase.google.com. - Add a Web app and copy the config.
- Enable Authentication → Google sign-in.
- Add
localhost(and your production domain) to Authorized domains. - Create a Firestore Database (production mode).
- Copy
.env.local.example→.env.localand fill in the values. - Deploy Firestore security rules:
npx firebase-tools login
npx firebase-tools use mindtrack-9e3ad
npx firebase-tools deploy --only firestore:rules,firestore:indexesnpm run dev # local dev server
npm run build # production build
npm run lint # ESLint
npm run test # Vitest unit tests- Alias is used throughout the app, not the Google display name.
- Check-ins are stored under
users/{uid}/checkins/— readable only by the owning user per Firestore rules. .env.localis gitignored and must never be committed.