1d920415382ed29b6c36110dbdbf46e824f08c6b
modified: web/components/base/input.templ modified: web/components/base/input_templ.go modified: web/components/base/range.templ modified: web/components/base/range_templ.go modified: web/components/base/select.templ modified: web/components/base/select_templ.go modified: web/components/base/textarea.templ modified: web/components/base/textarea_templ.go modified: web/components/icons.templ modified: web/components/icons_templ.go modified: web/components/issue.templ modified: web/components/issue_templ.go modified: web/components/layout.templ modified: web/components/layout_templ.go new file: web/components/sidebar.templ new file: web/components/sidebar_templ.go new file: web/components/status.templ new file: web/components/status_templ.go modified: web/handler/issues.go new file: web/handler/task.go modified: web/input.css deleted: web/package-lock.json deleted: web/package.json modified: web/routes/layout.templ modified: web/routes/layout_templ.go modified: web/server/routes.go modified: web/server/server.go modified: web/web.go
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
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
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
# Build all binaries
make build # Creates bin/pm, bin/tui, bin/web
# Run specific interfaces
make cli # Run CLI interface
make tui # Run TUI interface (interactive)
make web # Run Web server (localhost:8080)
# Development with hot reload
make dev # Watch templ files and auto-reload web
make tw # Watch Tailwind CSS changes
make watch # Run both dev and tw in parallel
# 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
├── cmd/ # Entry points
│ ├── pm/ # CLI main.go
│ ├── tui/ # TUI main.go
│ └── web/ # Web server main.go
├── internal/ # Core implementation
│ ├── models/ # Data models (beads types)
│ ├── service/ # Business logic (beads, statistics)
│ └── storage/ # Data persistence
├── pkg/ # Public packages
│ ├── cli/ # CLI commands and REPL
│ ├── tui/ # TUI views and components
│ └── web/ # Web handlers, templates, assets
└── .pm/ # Local data storage (gitignored)
Technology Stack
- Go 1.25.6 - Backend language
- Cobra - CLI framework
- Bubbletea - TUI framework
- Lipgloss - Terminal styling
- Templ - HTML templating
- Tailwind CSS v4 + DaisyUI - Web styling
- Beads - Issue tracking engine
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.
Description
Languages
Go
82.2%
templ
15%
Shell
1.1%
JavaScript
0.8%
Makefile
0.6%
Other
0.2%