LazyPM

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2026 License: Apache-2.0

README

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.

Directories

Path Synopsis
cmd
pm command
tui command
web command
internal
app
pkg
repl
Package repl implements the Read-Eval-Print Loop (REPL) for the PM CLI.
Package repl implements the Read-Eval-Print Loop (REPL) for the PM CLI.
tui
tui/modal
Package modal provides a composable, interface-based modal system for TUI views.
Package modal provides a composable, interface-based modal system for TUI views.
web
web/components
templ: version: v0.3.1001
templ: version: v0.3.1001
web/components/base
templ: version: v0.3.1001
templ: version: v0.3.1001
web/routes
templ: version: v0.3.1001
templ: version: v0.3.1001

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL