Skip to content

sid-chava/exp-task-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExpPoint - Task Tracker with Experience Points

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.

Features

Core Features

  • 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

User Experience

  • 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

Technical Stack

  • 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

Project Structure

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

Functional Requirements

  1. Experience System

    • Dynamic experience bar that updates in real-time
    • Level progression based on accumulated EXP
    • Visual feedback when gaining EXP or leveling up
  2. Task Management

    • Create, edit, and delete tasks
    • Mark tasks as complete to gain EXP
    • View active and completed tasks
    • Set deadlines for tasks (optional)
  3. EXP Assignment

    • Manual assignment of EXP values to tasks
    • AI-generated EXP values using LLM
    • All tasks must have an associated EXP value
  4. 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
  5. 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

LLM Prompt System

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.

Development Setup

  1. Prerequisites

    • Node.js (v14 or higher)
    • PostgreSQL
    • Expo CLI
    • OpenAI API key or equivalent LLM service
  2. 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
  3. 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
  4. Running the App

    # Start the backend
    cd server
    npm start
    
    # Start the frontend (in another terminal)
    cd client
    expo start --web

Future Enhancements

  • 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

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors