b3b45e67be658aa0e96b1465785a2e2b9f860397
remove types and moved struct to appropriate files
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%