2026-02-16 19:04:03 +01:00
2026-02-16 19:04:03 +01:00
2026-02-16 19:04:03 +01:00
2026-02-13 11:24:43 +01:00
2026-02-13 01:31:27 +01:00
2026-02-16 00:27:06 +01:00

# Learning Progress Tracker

A web-based goal and learning progress tracker with subtask management, drag-and-drop reordering, and persistent server-side storage.

## Features

- **Goal Management** — Create, edit, and delete learning goals with titles, descriptions, sizes, and optional rewards.
- **Subtasks** — Break goals into smaller subtasks. Drag any task onto another to nest it as a subtask, or promote subtasks back to top-level goals.
- **Progress Tracking** — Automatic progress calculation based on subtask completion, weighted by task size (Small 10%, Medium 25%, Large 50%).
- **Drag & Drop** — Reorder tasks and subtasks via drag-and-drop. Hold over a task to reveal its drop zone for nesting.
- **Context Menus** — Right-click any task or subtask to edit, delete, or promote (subtasks only).
- **Rewards** — Set optional rewards on goals that are revealed only upon completion.
- **Persistent Storage** — All data is stored in a SQLite database on the server.
- **Dark Theme** — Clean, modern dark UI.

## Project Structure

```
├── public/
│   ├── index.html       # Main HTML page
│   ├── styles.css       # Stylesheet (dark theme)
│   └── app.js           # Client-side application logic
├── server/
│   └── server.js        # Express server with SQLite backend
├── data/                # SQLite database (auto-created)
├── package.json
├── dockerfile
└── README.md
```

## Getting Started

### Prerequisites

- [Node.js](https://nodejs.org/) v18 or later
- npm (comes with Node.js)

### Installation

```bash
# Clone or download the project
cd learning-progress-tracker

# Install dependencies
npm install

# Start the server
npm start
```

The app will be available at **http://localhost:3000**.

For development with auto-reload:

```bash
npm run dev
```

### Docker

```bash
# Build the image
docker build -t learning-tracker .

# Run the container (persists data via volume)
docker run -d -p 3000:3000 -v tracker-data:/app/data learning-tracker
```

## API Endpoints

| Method | Endpoint | Description |
|--------|----------|-------------|
| `GET` | `/api/tasks` | Fetch all tasks |
| `POST` | `/api/tasks` | Create a new task |
| `PUT` | `/api/tasks/:id` | Update a task (including subtasks) |
| `DELETE` | `/api/tasks/:id` | Delete a task |
| `POST` | `/api/tasks/reorder` | Reorder tasks (accepts array of task IDs) |

## Usage

- Click **+ New Goal** to create a task.
- **Right-click** a task or subtask for edit/delete/promote options.
- **Drag** tasks to reorder them, or hold over another task to nest it as a subtask.
- Mark tasks complete to reveal rewards and track overall progress.

## Tech Stack

- **Frontend:** Vanilla JavaScript, HTML, CSS
- **Backend:** Node.js, Express
- **Database:** SQLite3
- **Containerization:** Docker

## License

MIT
S
Description
Learn Track
Readme
229 KiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 67.3%
CSS 24.9%
HTML 7.8%