diff --git a/README.md b/README.md index b209c25..b9455da 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ LazyPM is a lightweight project management system that provides three interfaces ## Features - Issue tracking (bugs, features, tasks, epics, chores) -- Status management (open, in-progress, blocked, deferred, closed) +- Status management (open, in-progress, closed) - Dependency tracking between issues - Labels and comments - Statistics and reporting @@ -22,12 +22,19 @@ LazyPM is a lightweight project management system that provides three interfaces ## Quick Start +### Prerequisites + +- Go 1.25.6+ +- Make + +### Installation + ```bash # Install dependencies go mod tidy ``` -### Install make +### Make Installation Linux: ```bash @@ -43,41 +50,64 @@ winget install --id chocolatey.chocolatey --source winget choco install make ``` -### Available make commands +## Build Commands ```bash -# Build all interfaces -make build +# Build all binaries +make build # Creates bin/pm, bin/tui, bin/web -# Run CLI -make cli - -# Run TUI -make tui - -# Run Web interface -make 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 +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 ``` -├── cmd/ # Entry points (cli, tui, web) -├── internal/ # Core services and models -├── pkg/ # Public packages (CLI, TUI, Web) -└── .pm/ # Local data storage +├── 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) ``` -## Requirements - -- Go 1.25.6+ -- SQLite - -## Dependencies +## Technology Stack +- [Go](https://golang.org/) 1.25.6 - Backend language - [Cobra](https://github.com/spf13/cobra) - CLI framework -- [templ](https://github.com/a-h/templ) - HTML templating -- [beads](https://github.com/steveyegge/beads) - Issue tracking engine +- [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. \ No newline at end of file