Metadata-Version: 2.4
Name: raztodo-web
Version: 0.1.1
Summary: Web UI for RazTodo
Keywords: raztodo,web-ui,fastapi,task-manager,local-first
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: raztodo>=0.11.0
Requires-Dist: fastapi[standard]>=0.141.1
Maintainer: Raz
Maintainer-email: Raz <real.raz.dev@gmail.com>
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/razbuild/raztodo-web
Project-URL: Documentation, https://github.com/razbuild/raztodo-web#readme
Project-URL: Repository, https://github.com/razbuild/raztodo-web
Project-URL: Issues, https://github.com/razbuild/raztodo-web/issues
Project-URL: Changelog, https://github.com/razbuild/raztodo-web/releases
Description-Content-Type: text/markdown

<div align="center">

<h1>RazTodo Web</h1>

<img src="https://raw.githubusercontent.com/razbuild/raztodo-web/main/assets/preview.png" alt="RazTodo Web task management interface">

<p>
  RazTodo Web adds a browser-based UI and a REST API on top of
  <a href="https://github.com/razbuild/raztodo">RazTodo</a>.<br>
  It's a presentation layer, not a replacement.
</p>

<br>

</div>

## What is RazTodo Web?

RazTodo Web is a **Vanilla JavaScript + FastAPI** web interface for [RazTodo](https://github.com/razbuild/raztodo), built directly on top of its core.

## Features

| Type        | Item                   | Details                                       |
| ----------- | ---------------------- | --------------------------------------------- |
| 🤖 Optional | **Ollama**             | Access RazTodo's AI-powered task explanations |
| 📋 Feature  | **Task Management**    | Create, update, complete, and delete tasks    |
| 🔎 Feature  | **Search & Filtering** | Search and filter by status                   |
| 🏷️ Feature | **Organization**       | Priorities, tags, projects, and due dates     |
| 📥 Feature  | **Import / Export**    | Import and export tasks as JSON               |
| 🧹 Feature  | **Clean All**          | Delete all tasks at once                      |
| 🌐 Feature  | **Responsive Web UI**  | Browser-based interface                       |
| 🔌 Feature  | **REST API**           | FastAPI-powered API                           |
| 🌓 Feature  | **Light / Dark Theme** | Light and dark themes                         |
| 💾 Feature  | **Local-first**        | Runs locally without an external backend      |

## Screenshots

### Light Theme

![RazTodo Web - Light Theme](assets/screenshots/light-theme.png)

### Dark Theme

![RazTodo Web - Dark Theme](assets/screenshots/dark-theme.png)

### API Documentation

![RazTodo Web - API Documentation](assets/screenshots/api-docs.png)

## Requirements

* Python 3.10+
* RazTodo 0.11.x

## Architecture

```text
┌──────────────────────────────────────┐
│             RazTodo Web              │
│       Web UI - FastAPI - REST        │
└──────────────────┬───────────────────┘
                   │
                   ▼
┌──────────────────────────────────────┐
│               RazTodo                │
│    Domain - Application - Storage    │
└──────────────────────────────────────┘
```

## Quick Start

### 1. Install

```bash
pip install raztodo-web
```

RazTodo is installed automatically as a dependency.

### 2. Run

```bash
rt-web
```

The server starts on `http://127.0.0.1:8000` by default.

### 3. Access

Once the server is running:

| Service       | URL                         |
| ------------- | --------------------------- |
| 🌐 Web UI     | http://127.0.0.1:8000       |
| 📖 Swagger UI | http://127.0.0.1:8000/docs  |
| 📚 ReDoc      | http://127.0.0.1:8000/redoc |

### 4. Configure

Set a custom host or port with environment variables:

```bash
RAZTODO_WEB_HOST=0.0.0.0 RAZTODO_WEB_PORT=8080 rt-web
```

## License

[![License](https://img.shields.io/github/license/razbuild/raztodo-web)](https://github.com/razbuild/raztodo-web/blob/main/LICENSE)

<div align="center">

<img src="https://raw.githubusercontent.com/razbuild/.github/main/assets/badge.svg" alt="Made by RazBuild" width="160">

</div>
