ExpPoint is a mobile application that gamifies task completion by rewarding users with experience points (EXP). It allows users to create tasks, assign EXP values, track progress, and gain satisfaction from watching their experience bar grow as they complete tasks.
- Experience Bar: Visual representation of user progress
- Task Management: Create, track, and complete tasks
- EXP Assignment: Each task has an associated EXP value (manually or AI-generated)
- Task Generation: AI-assisted task generation based on user input
- AI-Powered EXP Calculation: LLM-based intelligent EXP value generation
- Progress Tracking: Visual feedback on completed tasks and EXP gained
- Task Categories: Organize tasks by category or project
- Intuitive Interface: Clean, responsive design for ease of use
- Consistent EXP Values: AI ensures fair and consistent EXP allocation
- Frontend: React Native (Expo) for cross-platform compatibility
- Backend: Node.js with Express
- Database: PostgreSQL for data persistence
- API: RESTful API for data exchange
- AI Integration: LLM service for intelligent EXP assignment and task generation
exp-task-tracker/
├── client/ # React Native (Expo) frontend
│ ├── assets/ # Images, fonts, etc.
│ ├── components/ # Reusable UI components
│ │ ├── ExpBar/ # Experience progress bar component
│ │ ├── TaskCard/ # Task display component
│ │ ├── TaskForm/ # Task creation form
│ │ └── TaskList/ # List of tasks component
│ ├── screens/ # App screens
│ │ ├── HomeScreen/ # Main task overview
│ │ ├── AddTaskScreen/ # Add new tasks
│ │ ├── CompletedScreen/ # View completed tasks
│ │ └── StatsScreen/ # EXP statistics and progress
│ ├── services/ # API integration
│ ├── utils/ # Helper functions
│ └── App.js # Entry point
├── server/ # Node.js backend
│ ├── controllers/ # Request handlers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── services/ # Business logic
│ │ └── ai/ # LLM integration for EXP calculation
│ ├── utils/ # Helper functions
│ ├── config/ # Configuration files
│ └── server.js # Entry point
└── database/ # Database setup and migrations
-
Experience System
- Dynamic experience bar that updates in real-time
- Level progression based on accumulated EXP
- Visual feedback when gaining EXP or leveling up
-
Task Management
- Create, edit, and delete tasks
- Mark tasks as complete to gain EXP
- View active and completed tasks
- Set deadlines for tasks (optional)
-
EXP Assignment
- Manual assignment of EXP values to tasks
- AI-generated EXP values using LLM
- All tasks must have an associated EXP value
-
LLM-Powered EXP Generation
- Intelligent EXP calculation using task attributes
- Factors in estimated duration and relative complexity
- Ensures consistency with low-temperature model parameters
- Uses few-shot prompting with examples for better calibration
- Standardizes EXP rewards across different task types
-
Task Generation
- Generate tasks based on user input
- Automatically assign appropriate EXP values to generated tasks using LLM
- Generate both upcoming and completed task scenarios
The app uses a sophisticated prompt system for the LLM to generate consistent and fair EXP values:
You are an EXP calculator for a task management app. Given a task description,
estimate its appropriate experience points (EXP) value based on:
1. Estimated duration (in minutes or hours)
2. Relative complexity (simple, moderate, complex)
3. Required effort (physical, mental, emotional)
Scale from 10-1000 EXP where:
- Simple, quick tasks (5-15 min): 10-50 EXP
- Moderate tasks (15-60 min): 50-200 EXP
- Complex tasks (1-4 hours): 200-500 EXP
- Major projects (4+ hours): 500-1000 EXP
Examples:
- "Take out the trash" -> 15 EXP (simple, 5 min)
- "Complete workout routine" -> 150 EXP (moderate, 45 min)
- "Finish quarterly report" -> 400 EXP (complex, 3 hours)
Provide ONLY the numeric EXP value without explanation.
The system will use a low temperature setting (0.2-0.3) to ensure consistent EXP values for similar tasks.
-
Prerequisites
- Node.js (v14 or higher)
- PostgreSQL
- Expo CLI
- OpenAI API key or equivalent LLM service
-
Installation
# Clone the repository git clone https://github.com/yourusername/exp-task-tracker.git cd exp-task-tracker # Install dependencies for the backend cd server npm install # Setup the database npm run setup-db # Install dependencies for the frontend cd ../client npm install
-
Configuration
# Create a .env file in the server directory cd server touch .env # Add your LLM API key and other configurations echo "LLM_API_KEY=your_api_key" >> .env echo "LLM_MODEL=gpt-3.5-turbo" >> .env echo "LLM_TEMPERATURE=0.2" >> .env echo "DATABASE_URL=postgres://username:password@localhost:5432/exppoint" >> .env
-
Running the App
# Start the backend cd server npm start # Start the frontend (in another terminal) cd client expo start --web
- User authentication
- Social features (comparing progress with friends)
- Achievements and badges
- Custom themes
- Advanced statistics and visualizations
- Improved LLM prompt engineering for more accurate EXP values
- Task difficulty auto-adjustment based on user feedback
MIT