How rehan1605/momentum works
Momentum is a personal habit and wellbeing tracker. Users register or sign in, manage scheduled habits, record daily completion and mood or journal entries, then review progress and achievements or request personalized coaching. The frontend’s API client connects the Next.js experience to an Express API; authenticated controllers read and update MongoDB-backed records, while analytics and badge services derive progress. AI coaching combines user records and analytics with an optional Ollama service. The README is empty, so product capabilities are inferred from the tree and sampled code; unsampled route wiring is shown only where the tree supports it.
Main entry points: index.js API router · aiService.js AI context and prompts · api.js API client · statsService.js Analytics service
Components 34
User experience
- Next.js app
frontend/app - API client
frontend/services/api.js - Auth pages
frontend/app/login/page.js - Habit pages
frontend/app/habits/page.js - Mood and journal
frontend/app/mood/page.js - Progress pages
frontend/app/analytics/page.js - AI coaching page
frontend/app/ai/page.js
API and identity
- Express API
backend/server.js - API router
backend/routes/index.js - Auth routes
backend/routes/authRoutes.js - Identity handlers
backend/controllers/authController.js - Auth middleware
backend/middleware/authMiddleware.js - User records
backend/models/User.js
Habit and wellbeing
- Habit routes
backend/routes/habitRoutes.js - Habit handlers
backend/controllers/habitController.js - Habit log routes
backend/routes/habitLogRoutes.js - Habit log handlers
backend/controllers/habitLogController.js - Wellbeing routes
backend/routes/journalRoutes.js - Mood and journal handlers
backend/controllers/wellbeingController.js - Habit records
backend/models/Habit.js - Completion records
backend/models/HabitLog.js - Mood records
backend/models/MoodLog.js - Journal records
backend/models/JournalEntry.js
Progress and coaching
- Stats routes
backend/routes/statsRoutes.js - Stats handlers
backend/controllers/statsController.js - Analytics service
backend/services/statsService.js - Badge routes
backend/routes/badgeRoutes.js - Badge handlers
backend/controllers/badgeController.js - Badge service
backend/services/badgeService.js - AI routes
backend/routes/aiRoutes.js - AI handlers
backend/controllers/aiController.js - AI context and prompts
backend/services/aiService.js
Other components
- User
- Ollama
Connections 42
- User → Next.js app: uses
- Auth pages → API client: requests auth
- Habit pages → API client: requests habits
- Mood and journal → API client: requests wellbeing
- Progress pages → API client: requests progress
- AI coaching page → API client: requests coaching
- API client → Express API: sends API requests
- Express API → API router: mounts API
- API router → Auth routes: dispatches
- Auth routes → Identity handlers: dispatches
- Identity handlers → User records: reads and writes
- API router → Habit routes: dispatches
- Habit routes → Auth middleware: protects routes
- Habit routes → Habit handlers: dispatches
- Habit handlers → Habit records: reads and writes
- API router → Habit log routes: dispatches
- Habit log routes → Auth middleware: protects routes
- Habit log routes → Habit log handlers: dispatches
- Habit log handlers → Habit records: checks habits
- Habit log handlers → Completion records: reads and writes
- API router → Wellbeing routes: dispatches
- Wellbeing routes → Auth middleware: protects routes
- Wellbeing routes → Mood and journal handlers: dispatches
- Mood and journal handlers → Mood records: reads and writes
- Mood and journal handlers → Journal records: reads and writes
- API router → Stats routes: dispatches
- Stats routes → Auth middleware: protects routes
- Stats routes → Stats handlers: dispatches
- Stats handlers → Analytics service: requests metrics
- Analytics service → Habit records: reads
- Analytics service → Completion records: reads
- API router → Badge routes: dispatches
- Badge routes → Badge handlers: dispatches
- Badge handlers → Badge service: requests awards
- API router → AI routes: dispatches
- AI routes → AI handlers: dispatches
- AI handlers → AI context and prompts: requests coaching
- AI context and prompts → Analytics service: gets analytics
- AI context and prompts → Habit records: reads
- AI context and prompts → Completion records: reads
- AI context and prompts → Mood records: reads
- AI context and prompts → Ollama: generates coaching