Skip to content

CodyOutcast/TaskTitan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TaskTitan

TaskTitan is a comprehensive productivity and task management iOS application with AI-powered coaching features.

🎯 Overview

TaskTitan combines modern task management with personalized AI coaching to help users overcome procrastination and achieve their goals through a supportive, gamified experience.

Key Features

  • Task Management: Create, track, and manage tasks with AI-powered breakdown
  • 5 Unique AI Coaches: Personalized coaching with distinct personalities (Natalie, Leeko, Buto, Sutton, Molten)
  • Photo Gallery: Capture completed tasks with device camera or photo library
  • Progress Analytics: Visual performance metrics and insights
  • Smart Notifications: AI-generated reminders with coach personalities
  • Multi-language Support: Full English and Chinese localization
  • Theme System: Dark/light mode with elegant orange accent
  • Subscription Tiers: Basic and Pro feature sets
  • Local-First Architecture: All data stored on device, works offline

πŸ—οΈ Project Structure

TaskTitan/
β”œβ”€β”€ frontend/                 # React/TypeScript/Capacitor iOS app
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/      # React components (tracker, coach, statistics, etc.)
β”‚   β”‚   β”œβ”€β”€ services/        # Notification services
β”‚   β”‚   β”œβ”€β”€ utils/           # API service, storage, analytics
β”‚   β”‚   β”œβ”€β”€ assets/          # Images and static files
β”‚   β”‚   └── styles/          # Global CSS and theme
β”‚   β”œβ”€β”€ ios/                 # iOS Capacitor native project
β”‚   β”œβ”€β”€ build/               # Production build output
β”‚   └── package.json         # Frontend dependencies
β”œβ”€β”€ backend/                  # Node.js/Express backend (optional)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ routes/          # API routes (ai-coach, notifications, purchase)
β”‚   β”‚   β”œβ”€β”€ services/        # GLM-4 AI and notification services
β”‚   β”‚   └── database/        # PostgreSQL schema (future)
β”‚   └── package.json         # Backend dependencies
└── README.md                # This file

πŸš€ Getting Started

Frontend Setup (Required)

The TaskTitan frontend is a local-first iOS application that stores all data on the device. It can run independently without the backend.

  1. Navigate to frontend directory:
cd frontend
  1. Install dependencies (includes camera & IAP plugins):
npm install
  1. Development server (web preview):
npm run dev
# Open http://localhost:5173
  1. Build for iOS:
npm run ios:build
  1. Open in Xcode:
npm run cap:open ios

Quick Setup Script

Run the automated camera setup script:

./install-camera.sh

Backend Setup (Optional)

The backend provides AI coaching via Zhipu GLM-4 API and push notifications via Tencent TPNS.

  1. Navigate to backend:
cd backend
  1. Install dependencies:
npm install
  1. Configure environment (.env file):
# Create .env file in backend directory with:
PORT=3001
GLM_API_KEY=your_glm_api_key_here
APPLE_SHARED_SECRET=your_apple_shared_secret_here

# Optional - Tencent Push Notifications
TPNS_ACCESS_ID=your_tpns_access_id
TPNS_SECRET_KEY=your_tpns_secret_key
  1. Start server:
npm run dev
# Backend runs on http://localhost:3001

πŸ€– AI Coaches

The app features 5 unique AI coaching personalities powered by GLM-4-flash:

Coach Personality Icon Description
Natalie Empathetic & Supportive πŸ’– Gentle encouragement and emotional support
Leeko Young & Energetic ⚑ Playful motivation with a rebellious edge
Buto Direct & No-Nonsense πŸ›‘οΈ Tough love and accountability
Sutton Cool & Trendy ⭐ Hip, modern coaching style
Molten Wise & Reflective 🏠 Thoughtful, philosophical guidance

Each coach has unique response styles and adapts to English or Chinese automatically.

πŸ“Έ Gallery Feature

Celebrate completed tasks with photos:

  • Take Picture: Use device camera to capture completion moments
  • From Gallery: Select photos from your photo library
  • Photo Cards: Beautiful card-based gallery with task details
  • Timing Metrics: Track if you finished early or late
  • Local Storage: Photos stored as Base64, works offline

iOS Permissions Required:

  • Camera access
  • Photo library read access
  • Photo library write access

πŸ”” Notification System

Dual notification architecture:

  1. Local Notifications: Immediate, offline browser notifications
  2. Push Notifications: Server-side via TPNS with AI-generated messages

Notification Types:

  • 24 hours before goal deadline
  • 12 hours before goal deadline
  • 1 hour before goal deadline
  • Goal deadline overdue
  • Final deadline warning

πŸ› οΈ Tech Stack

Frontend

  • React 18 - UI framework
  • TypeScript - Type safety
  • Vite - Build tool & dev server
  • Capacitor 7 - Native iOS bridge
  • Tailwind CSS - Utility-first styling
  • Radix UI - Accessible component primitives
  • Framer Motion - Smooth animations
  • Lucide React - Icon library
  • Sonner - Toast notifications

Backend

  • Node.js - Runtime
  • Express - Web framework
  • TypeScript - Type safety
  • Axios - HTTP client
  • PostgreSQL - Database (schema ready)
  • Zhipu GLM-4 - AI coaching API
  • Tencent TPNS - Push notifications

Native Features

  • @capacitor/camera - Camera & photo library access
  • @capacitor/local-notifications - Local notifications
  • @capacitor/push-notifications - Push notifications

πŸ“¦ Available Scripts

Frontend

npm run dev              # Start dev server (web preview)
npm run build            # Build for production
npm run preview          # Preview production build
npm run lint             # Run ESLint
npm run type-check       # TypeScript type checking
npm run ios:build        # Build and sync to iOS
npm run ios:dev          # Build and open Xcode
npm run cap:sync         # Sync native plugins
npm run cap:open ios     # Open iOS project in Xcode

Backend

npm run dev              # Start with hot reload
npm run build            # Build TypeScript
npm run start            # Run production build
npm run lint             # Run ESLint

οΏ½ Subscription & In-App Purchases

Subscription Tiers

Basic (Free):

  • 10 tasks per month
  • 10 notifications per month
  • Access to 1 coach (Natalie)

Pro (Β₯4.90/month):

  • Unlimited tasks
  • Unlimited notifications
  • Access to all 5 coaches

Apple IAP Setup

  1. App Store Connect:

    • Create subscription group: "Pro Subscriptions"
    • Product ID: com.quesx.tasktitan.pro
    • Duration: 1 Month
    • Price: Β₯4.90 (China)
  2. Get Shared Secret:

    • App Store Connect β†’ Your App β†’ General β†’ App Information
    • Generate App-Specific Shared Secret
    • Add to backend .env as APPLE_SHARED_SECRET
  3. Create Sandbox Tester:

    • App Store Connect β†’ Users and Access β†’ Sandbox Testers
    • Add tester account for testing purchases
  4. Backend Verification:

    • Backend automatically verifies receipts with Apple
    • Endpoint: /api/purchase/verify

οΏ½πŸ“± iOS Deployment

Requirements

  • macOS with Xcode 14+
  • Apple Developer Account ($99/year)
  • iOS device or simulator

Deployment Steps

  1. Build the app:
cd frontend
npm run ios:build
  1. Configure in Xcode:

    • Set Bundle Identifier: com.quesx.tasktitan
    • Team: Select your Apple Developer account
    • Signing: Enable "Automatically manage signing"
    • Capabilities:
      • βœ“ Push Notifications
      • βœ“ Background Modes (Remote notifications)
      • βœ“ In-App Purchase
  2. Info.plist Permissions:

    • Camera: "We need access to capture photos of completed tasks"
    • Photo Library: "We need access to select photos for your task gallery"
    • Notifications: "We send reminders for your tasks and deadlines"
  3. TestFlight Distribution:

    • Archive: Product β†’ Archive (in Xcode)
    • Distribute: Select archive β†’ Distribute App
    • Upload to App Store Connect
    • Add testers (internal: up to 100, external: up to 10,000)
    • Wait for processing (~5-10 minutes)
  4. App Store Submission:

    • Complete app metadata in App Store Connect
    • Add screenshots (required: 6.5" & 5.5" displays)
    • Write description and keywords
    • Set age rating
    • Submit for review

🌍 Internationalization

Full bilingual support with automatic language detection:

English:

  • Primary language
  • Full UI translations
  • Coach personalities in English

δΈ­ζ–‡ (Chinese):

  • Complete Chinese translations
  • Localized date/time formatting
  • Chinese coach responses

Language switching in Settings β†’ Language

🎨 Theme System

Light Theme:

  • Clean white background
  • Orange primary accent (#FF6B35)
  • High contrast for readability

Dark Theme:

  • Pure black background (#0A0A0A)
  • Same orange accent for consistency
  • OLED-friendly

Toggle in Settings β†’ Theme

πŸ’Ύ Data Storage

Local-First Architecture:

  • All data stored in browser LocalStorage
  • No cloud dependency
  • Works completely offline
  • Export/import functionality
  • Privacy-focused

Stored Data:

  • Tasks and progress
  • Chat conversations
  • Gallery photos (Base64)
  • User preferences
  • Analytics data

πŸ” Privacy & Security

  • No user accounts - Device-based identification
  • Local storage - All data stays on device
  • Optional backend - Only for AI features
  • No data collection - Privacy-first design
  • Device fingerprinting - For future cloud sync (optional)

πŸ§ͺ Testing

Run Tests

Currently no test files. Future: Jest + React Testing Library

Manual Testing Checklist

  • Task creation with AI breakdown
  • Task completion flow
  • Coach chat interactions
  • Camera photo capture
  • Photo library selection
  • Notification scheduling
  • Language switching
  • Theme switching
  • Statistics display
  • Gallery card creation

πŸ› Troubleshooting

Camera Not Working

  • Check iOS Settings β†’ TaskTitan β†’ Enable Camera/Photos access
  • Re-sync Capacitor: npm run cap:sync (in frontend directory)
  • Rebuild: npm run ios:build

Backend Connection Issues

# Check backend is running
curl http://localhost:3001/health

# Check frontend proxy in vite.config.ts
# Should point to http://localhost:3001

Build Errors

# Clean and rebuild
cd frontend
rm -rf node_modules build ios/App/build
npm install
npm run ios:build

οΏ½ Project Status

Current Version: 1.0.0
Status: βœ… Production Ready

Recent Updates (Oct 2025):

  • βœ… Camera plugin integration for gallery
  • βœ… iOS permissions configured
  • βœ… Notification system fixed
  • βœ… Code cleanup (removed ~1,200 lines of unused code)
  • βœ… Documentation consolidated

Completed Features:

  • Task management with AI breakdown
  • 5 AI coach personalities
  • Photo gallery with camera access
  • Smart notifications
  • Statistics and analytics
  • English/Chinese support
  • Dark/light themes
  • iOS Capacitor setup
  • Local-first storage

Future Enhancements:

  • Image compression for photos
  • Cloud backup (optional)
  • Social sharing
  • Photo editing
  • Android support
  • Backend database implementation
  • Purchase verification

🀝 Contributing

This is a private project. For issues or suggestions, contact the development team.

πŸ“„ License

Proprietary - All rights reserved

πŸ”— Resources

οΏ½ Attributions

This project includes:

πŸ“ž Support

For setup help or bug reports:

  1. Check troubleshooting section above
  2. Review console logs for detailed errors
  3. Verify all dependencies are installed
  4. Ensure backend is running (for AI features)

Built with ❀️ for productivity and personal growth

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •