sherpa-todo

●suspended stale none private

To do list to be hosted on the web.

README

# Sherpa To-Do

A task management web app with secure API endpoints for remote task creation and completion.

## Features

- **Web UI**: Dashboard with "Today's Focus" (overdue + due today tasks), full task list with filters
- **CRUD**: Create, read, update, delete tasks via web interface
- **API**: Secure REST endpoints for programmatic task management
- **Scopes**: Organize tasks by scope (dev, work, personal)
- **Priorities**: Low, medium, high priority levels
- **Categories**: Custom categories for task organization

## Local Development

### Prerequisites

- Python 3.9+
- pip

### Setup

1. Create a virtual environment:
   ```bash
   python -m venv venv
   venv\Scripts\activate  # Windows
   source venv/bin/activate  # Linux/Mac
   ```

2. Install dependencies:
   ```bash
   pip install -r requirements.txt
   ```

3. Configure environment variables:
   ```bash
   copy .env.example .env
   # Edit .env and set your API_SECRET
   ```

4. Run the app:
   ```bash
   # Option 1: Use the batch script (Windows)
   run_todo.bat

   # Option 2: Run directly
   python -m uvicorn main:app --host 127.0.0.1 --port 8000
   ```

5. Open http://127.0.0.1:8000 in your browser

## API Endpoints

All API endpoints require the `x-api-key` header with your `API_SECRET` value.

### Create Task
```bash
curl -X POST "http://localhost:8000/api/tasks" \
  -H "Content-Type: application/json" \
  -H "x-api-key: your-api-secret" \
  -d '{
    "title": "Complete project report",
    "description": "Finish Q4 analysis",
    "due_date": "2024-12-20",
    "priority": "high",
    "status": "todo",
    "category": "Reports",
    "scope": "work"
  }'
```

### Complete Task
```bash
curl -X POST "http://localhost:8000/api/tasks/1/complete" \
  -H "x-api-key: your-api-secret"
```

### Get Today's Tasks
```bash
curl "http://localhost:8000/api/tasks/today" \
  -H "x-api-key: your-api-secret"
```

### List All Tasks
```bash
curl "http://localhost:8000/api/tasks" \
  -H "x-api-key: your-api-secret"

# Wi

…(truncated for upload size)

STATUS

No STATUS.

DECISIONS

No DECISIONS.

MEMORY

No MEMORY.

CLAUDE.md

No CLAUDE.md.

Diary mentions

No recent diary mentions for this app.

Render