Files
LazyPM/README.md
2026-02-10 20:40:46 +01:00

113 lines
3.1 KiB
Markdown

# 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
```bash
# Install dependencies
go mod tidy
```
### Make Installation
Linux:
```bash
sudo pacman -S make
```
Windows (Choco):
```bash
# Install choco
winget install --id chocolatey.chocolatey --source winget
# Install make
choco install make
```
## Build Commands
```bash
# 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](https://golang.org/) 1.25.6 - Backend language
- [Cobra](https://github.com/spf13/cobra) - CLI framework
- [Bubbletea](https://github.com/charmbracelet/bubbletea) - TUI framework
- [Lipgloss](https://github.com/charmbracelet/lipgloss) - Terminal styling
- [Templ](https://github.com/a-h/templ) - HTML templating
- [Tailwind CSS v4](https://tailwindcss.com/) + DaisyUI - Web styling
- [Beads](https://github.com/steveyegge/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.