A modern web-based task management system for Taskwarrior and Taskchampion. This project provides a full-stack environment to manage your tasks with a clean web interface, a robust Go backend, and a specialized Rust middleware for Taskchampion synchronization.
The project is composed of several specialized services:
- Frontend: An Angular-based web application providing a user-friendly task management interface.
- Backend: A Go-based API server that handles business logic, user management, and communicates with the middleware.
- Middleware: A Rust-based service that interacts directly with Taskchampion, providing RESTful access and handling end-to-end encryption and synchronization.
- Sync Server: A Taskchampion synchronization server for backing up and syncing tasks across multiple clients.
- Database: PostgreSQL/SQLite is used for persistent storage.
.
├── backend/ # Go (Gin) API Server
├── frontend/ # Angular Web Application
├── middleware/ # Rust Taskchampion Middleware
└── docs/ # Project documentation
- Docker and Docker Compose (or Podman/podman-compose)
- An
.envfile based onenv-sample
-
Clone the repository:
git clone <repository-url> cd taskchampion-web
-
Configure environment:
cp env-sample .env # Edit .env with your configuration -
Start the services:
docker-compose up -d
Or using the Makefile in the backend directory:
cd backend && make docker-up
-
Access the application:
- Frontend:
http://localhost:4200 - Backend API:
http://localhost:8090 - Middleware API:
http://localhost:3001
- Frontend:
Each component has its own detailed README with development instructions:
The frontend includes a pre-configured DevContainer setup for VS Code. This allows you to start developing immediately without installing Node.js or the Angular CLI on your local machine.
- Ensure you have the Dev Containers extension installed in VS Code.
- Open the project root in VS Code.
- When prompted, click Reopen in Container (or use the Command Palette:
Ctrl+Shift+P->Dev Containers: Reopen in Container).
If you prefer Podman, follow these steps:
- Install the Dev Containers extension.
- In VS Code Settings (
Ctrl+,), search fordev.containers.dockerPathand set it topodman. - If you are on Linux with SELinux enabled, you might need to add the following to your
frontend/.devcontainer/devcontainer.jsonif you encounter permission issues:"runArgs": ["--security-opt", "label=disable"]
- Open the project and select Reopen in Container.
See the LICENSE files in individual component directories.
