Robin Olsen d900a5fcd3 Merge pull request #75 from LazyBachelor/LPM-140
LPM-140 The Sprinting Update
Adds sprint support across the web UI (board + issue detail), TUI kanban, CLI/REPL, and the Beads-backed storage layer.

Changes:

Introduces sprint entities in storage and exposes sprint operations via IssueService.
Updates web board to support backlog vs. sprint columns, sprint selection, and sprint creation routes.
Updates TUI kanban to show backlog + sprint columns and adds sprint selection/creation actions.
2026-03-23 19:26:04 +01:00
2026-02-03 13:09:44 +01:00
2026-03-18 15:56:10 +01:00
2026-03-16 14:19:54 +01:00
2026-03-10 15:36:15 +01:00

LazyPM

A project management tool for developers.

Made for bachelor project, used for gathering and comparing data between interfaces.

Overview

LazyPM is a lightweight project management system that provides three interfaces:

  • CLI - Command-line interface for quick operations
  • TUI - Terminal user interface for interactive use
  • Web - Browser-based interface with HTML templates
  • Survey - Interactive task-based survey system for data gathering

Features

  • Issue tracking (bugs, features, tasks, epics, chores)
  • Status management (open, in-progress, closed)
  • Dependency tracking between issues
  • Labels and comments
  • Statistics and reporting
  • SQLite storage via Beads library

Quick Start

Prerequisites

  • Go 1.25.6+
  • Make
  • npm (for Tailwind CSS)

Installation

# Install dependencies
go mod tidy

Make Installation

Linux:

sudo pacman -S make

Windows (Choco):

# Install choco
winget install --id chocolatey.chocolatey --source winget

# Install make
choco install make

Build Commands

# Run web (without hot reload)
make web

# Web with hot reload
make dev                # Watch templ files and auto-reload web
make tw                 # Watch Tailwind CSS changes

# Run tui
make tui

# Run cli
go run ./cmd/cli

# Run a specific task with a specific interface (e.g. WEB UI and priority_management)
go run ./cmd/pm survey start -i web -t priority_management

# Build all binaries
make build              # Creates bin/pm, bin/tui, bin/web, bin/survey

# Docker (lazyos desktop environment)
make os-build           # Build lazyos Docker image
make os-run             # Run lazyos container (localhost:3000-3001)
make os-stop            # Stop and remove lazyos container

# Maintenance
make tidy               # Run go mod tidy
make clean              # Clean build artifacts

# Install
make install-cli        # Install CLI with shell completions
make completions        # Generate shell completion scripts

Project Structure

├── bin/                # Compiled binaries
├── build/              # Docker build files for lazyos desktop environment
│   ├── Dockerfile     # Webtop-based desktop container
│   ├── setup-desktop.sh # Desktop shortcut setup script
│   └── survey         # Survey binary (copied during build)
├── cmd/                # Entry points
│   ├── pm/            # CLI main
│   ├── tui/           # TUI main
│   ├── web/           # Web server main
│   └── survey/        # Survey system main
├── internal/           # Core implementation
│   ├── models/        # Data models (beads types)
│   ├── service/       # Business logic
│   ├── storage/       # Data persistence
│   └── commands/      # Cobra commands
│       ├── issues/    # Issue management commands
│       └── survey/    # Survey commands
├── pkg/                # Public packages
│   ├── cli/           # CLI framework
│   ├── tui/           # TUI views and components
│   ├── web/           # Web handlers, templates, assets
│   ├── repl/          # REPL implementation
│   └── task/          # Task registration and runner
└── .pm/                # Local data storage (gitignored)

Technology Stack

Configuration

LazyPM stores data in a local .pm directory:

  • .pm/db.db - SQLite database for issues
  • .pm/stats.json - Statistics storage

The directory is automatically created on first run.

Development

Running the Survey System

The survey system provides interactive task-based data gathering:

make start              # Start the survey interface

LazyOS Desktop Environment

LazyOS is a containerized desktop environment for running the survey in a browser-based desktop:

make os-build           # Build lazyos Docker image
make os-run             # Run lazyos container (access at localhost:3000)
make os-stop            # Stop and remove lazyos container

The lazyos container provides:

  • Web-based desktop environment (LinuxServer Webtop)
  • Pre-configured desktop shortcut for the survey
  • Runs at http://localhost:3000

Web Development

# Terminal 1 - Auto-reload Go server on templ changes
make dev

# Terminal 2 - Watch Tailwind CSS
make tw

Available Tasks

  • create_issue - Create a new issue
  • coding_task - Coding-related task
  • git_task - Git operations task
  • sprint_planning - Sprint planning task
  • issue_triage - Issue triage task
  • milestone_tracking - Milestone tracking task
  • dependency_management - Dependency management task
  • team_capacity - Team capacity task
  • report_generation - Report generation task
  • stakeholder_update - Stakeholder update task
  • priority_management - Priority management task
  • backlog_refinement - Backlog refinement task

CI/CD

This project uses GitHub Actions for:

  • Building Go binaries on push/PR
  • Docker image publishing
  • Release automation with GoReleaser

See .github/workflows/ for details.

License

See LICENSE file for details.

Description
Bachelor project repository
Readme Apache-2.0 15 MiB
Languages
Go 82.2%
templ 15%
Shell 1.1%
JavaScript 0.8%
Makefile 0.6%
Other 0.2%