Metadata-Version: 2.4
Name: raztodo-web
Version: 0.1.0
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   |


## 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>