21 Commits

Author SHA1 Message Date
Avery Felts
c518ad9f34 Fix mood tracker affirmation bug and add dynamic background 2026-01-27 17:59:05 -07:00
Avery Felts
cec4096e1f Fix push notifications: Edge runtime compatibility, minute-precision hourly reminders, and timezone sync 2026-01-27 16:47:51 -07:00
Avery Felts
9f0eb9a5bd Add hourly time picker range and update notification logic 2026-01-27 14:26:24 -07:00
Avery Felts
431966a634 feat: add daily/hourly notification frequency and cloudy header effect 2026-01-27 09:31:01 -07:00
Avery Felts
7dd5e6359a feat: Remove Muslim and Jewish options, keep only Christian (KJV) and Secular quotes 2026-01-25 18:18:35 -07:00
Avery Felts
bf9da84553 fix: Replace Prisma with native D1 and fix timezone issues
- Created native D1 database layer (src/lib/d1.ts) to bypass Prisma fs.readdir issues
- Updated all API routes to use direct D1 queries
- Added date-utils.ts with local date helpers to fix UTC timezone mismatch
- Calendar now correctly colors today's usage
- Data persists correctly across page refreshes
2026-01-25 18:10:04 -07:00
Avery Felts
14c45eeb24 feat: Add D1 database integration with proper Cloudflare Workers support
- Update prisma.ts to use getPrismaWithD1() with getCloudflareContext()
- Update all API routes to use async D1 connection
- Add open-next.config.ts for Cloudflare Workers deployment
- Add wrangler.jsonc with D1 binding and custom domain routes
- Fix TypeScript type errors in API routes and storage
- Add @workos-inc/authkit-nextjs dependency
- Remove incompatible prisma.config.ts
2026-01-25 17:21:36 -07:00
Avery Felts
9cb176d5a4 Update quit smoking website 2026-01-25 12:30:09 -07:00
Avery Felts
f13bd09bd4 fix: precise timestamp tracking for health timeline 2026-01-25 11:16:32 -07:00
Avery Felts
4ad4bd0884 feat: add daily religious verse placard with user preference support 2026-01-25 10:31:27 -07:00
Avery Felts
edfc978217 Optimize performance, fix theme consistency, and improve notification UX 2026-01-24 13:11:43 -07:00
Avery Felts
94a4f3adfd Change savings tracking from daily to weekly units for more accurate calculations 2026-01-24 12:11:08 -07:00
Avery Felts
2491c79b0a Improve achievements, move reminders to header, and reset health timeline on usage 2026-01-24 12:00:22 -07:00
Avery Felts
54b7a294f5 Add achievements, health timeline, savings tracker, and reminders features
- Achievements system with 6 badges and confetti celebration animation
- Health recovery timeline showing 9 milestones from 20min to 1 year
- Money savings tracker with cost configuration and goal progress
- Daily reminder notifications with browser permission handling
- New Prisma models: Achievement, ReminderSettings, SavingsConfig
- API routes for all new features
- Full dashboard integration with staggered animations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 11:38:46 -07:00
Avery Felts
fac443c281 Add dark/light theme toggle with adaptive styling
Implement theme context provider with localStorage persistence and add
toggle button to header. Update Dashboard, StatsCard, QuitPlanCard,
SubstanceTrackingPage, and UsageCalendar components with theme-aware
gradients and colors. Also add daily inspirational quotes to calendar
and fix usage prompt to only show once per day.
2026-01-24 03:17:09 -07:00
Avery Felts
ec0d83586d Add QuitPlanCard with 7-day tracking and personalized quit plan
- Restore QuitPlanCard component under calendar on dashboard
- Yellow gradient during tracking phase (before 7 days of data)
- Pink gradient when quit plan is active
- Track unique days with logged data for countdown
- Generate 4-week plan with 25% weekly reduction
- White text throughout for readability

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 01:45:59 -07:00
Avery Felts
750c5af465 Switch from localStorage to SQLite database for persistent storage
- Add Prisma ORM with SQLite for server-side data persistence
- Create UserPreferences and UsageEntry models
- Add API routes for preferences and usage data CRUD operations
- Update storage.ts to use fetch API calls instead of localStorage
- Update components to use async data fetching
- Data now persists across devices for each user account

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 01:08:10 -07:00
Avery Felts
a244e740c9 Store data per-user using unique account ID
- Add user ID prefix to all localStorage keys
- Each user now has isolated data storage
- New users see fresh setup wizard
- Switching accounts loads that user's specific data

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 21:52:00 -07:00
Avery Felts
cab5e5810a Add clear day option to calendar
- Add clearDayData function to remove specific day's usage
- Add "Clear This Day" button in calendar edit dialog
- Allows users to reset individual days without clearing all data

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 21:45:04 -07:00
Avery Felts
9918432686 Update UI and add user personalization features
- Rename app from QuitTrack to QuitTraq
- Add metallic dark gradient background
- Change header to light purple gradient
- Add name and age collection in setup wizard
- Display personalized "Welcome {name}, you got this!" message
- Hide username/email, show only profile picture
- Change calendar to red gradient for usage days
- Update logging prompt to "just took" instead of daily total
- Add floating "Log Puff" button for easy access
- Fix calendar editing to properly update values
- Add glass-morphism effect to cards

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 21:40:59 -07:00
Avery Felts
a812e6342c Implement QuitTrack smoking cessation tracking app
- Add WorkOS SSO authentication (Google and Apple sign-in)
- Add daily usage tracking with calendar view
- Add setup wizard for substance selection (nicotine/cannabis)
- Add daily check-in prompt on login
- Add statistics dashboard (daily avg, streak, etc.)
- Add quit plan generation after 7 days of tracking
- Apply custom theme from brief.md
- Add "stay logged in" preference

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 21:25:01 -07:00