d900a5fcd3a27c0c1f51769a7510030966796480
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.
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
- Go 1.25.6 - Backend language
- Cobra - CLI framework
- Fang - Colored CLI output
- Bubbletea - TUI framework
- Lipgloss - Terminal styling
- Huh - Terminal forms
- Templ - HTML templating
- HTMX - Dynamic web UI
- Tailwind CSS v4 + DaisyUI - Web styling
- Beads - Issue tracking engine
- go-git v6 - Git operations
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 issuecoding_task- Coding-related taskgit_task- Git operations tasksprint_planning- Sprint planning taskissue_triage- Issue triage taskmilestone_tracking- Milestone tracking taskdependency_management- Dependency management taskteam_capacity- Team capacity taskreport_generation- Report generation taskstakeholder_update- Stakeholder update taskpriority_management- Priority management taskbacklog_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
Languages
Go
82.2%
templ
15%
Shell
1.1%
JavaScript
0.8%
Makefile
0.6%
Other
0.2%