From 43606b479f9519697edbd76183e82151ff82939e Mon Sep 17 00:00:00 2001 From: Robin Olsen Date: Thu, 26 Feb 2026 18:20:22 +0100 Subject: [PATCH] update readme's --- README.md | 104 +++++++++++++++++++++++++++++++++++++++++++----- build/README.md | 64 ++++++++++++++++++++++++++++- 2 files changed, 157 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index b9455da..a71b87a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ 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 @@ -26,6 +27,7 @@ LazyPM is a lightweight project management system that provides three interfaces - Go 1.25.6+ - Make +- npm (for Tailwind CSS) ### Installation @@ -54,17 +56,22 @@ choco install make ```bash # Build all binaries -make build # Creates bin/pm, bin/tui, bin/web +make build # Creates bin/pm, bin/tui, bin/web, bin/survey # Run specific interfaces make cli # Run CLI interface make tui # Run TUI interface (interactive) make web # Run Web server (localhost:8080) +make start # Run survey interface # 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 + +# 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 @@ -79,18 +86,28 @@ make completions # Generate shell completion scripts ``` ├── 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.go -│ ├── tui/ # TUI main.go -│ └── web/ # Web server main.go +│ ├── 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 (beads, statistics) -│ └── storage/ # Data persistence +│ ├── service/ # Business logic +│ ├── storage/ # Data persistence +│ └── commands/ # Cobra commands +│ ├── issues/ # Issue management commands +│ └── survey/ # Survey commands ├── pkg/ # Public packages -│ ├── cli/ # CLI commands and REPL +│ ├── cli/ # CLI framework │ ├── tui/ # TUI views and components -│ └── web/ # Web handlers, templates, assets +│ ├── web/ # Web handlers, templates, assets +│ ├── repl/ # REPL implementation +│ └── task/ # Task registration and runner └── .pm/ # Local data storage (gitignored) ``` @@ -98,11 +115,15 @@ make completions # Generate shell completion scripts - [Go](https://golang.org/) 1.25.6 - Backend language - [Cobra](https://github.com/spf13/cobra) - CLI framework +- [Fang](https://github.com/charmbracelet/fang) - Colored CLI output - [Bubbletea](https://github.com/charmbracelet/bubbletea) - TUI framework - [Lipgloss](https://github.com/charmbracelet/lipgloss) - Terminal styling +- [Huh](https://github.com/charmbracelet/huh) - Terminal forms - [Templ](https://github.com/a-h/templ) - HTML templating +- [HTMX](https://htmx.org/) - Dynamic web UI - [Tailwind CSS v4](https://tailwindcss.com/) + DaisyUI - Web styling - [Beads](https://github.com/steveyegge/beads) - Issue tracking engine +- [go-git](https://github.com/go-git/go-git) v6 - Git operations ## Configuration @@ -110,4 +131,67 @@ 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 +The directory is automatically created on first run. + +## Development + +### Running the Survey System + +The survey system provides interactive task-based data gathering: + +```bash +make start # Start the survey interface +``` + +### LazyOS Desktop Environment + +LazyOS is a containerized desktop environment for running the survey in a browser-based desktop: + +```bash +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 + +```bash +# 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 issue +- `coding_task` - Coding-related task +- `git_task` - Git operations task +- `sprint_planning` - Sprint planning task +- `issue_triage` - Issue triage task +- `milestone_tracking` - Milestone tracking task +- `dependency_management` - Dependency management task +- `team_capacity` - Team capacity task +- `report_generation` - Report generation task +- `stakeholder_update` - Stakeholder update task +- `priority_management` - Priority management task +- `backlog_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](LICENSE) file for details. \ No newline at end of file diff --git a/build/README.md b/build/README.md index d5f981a..e78bbd4 100644 --- a/build/README.md +++ b/build/README.md @@ -1 +1,63 @@ -# This describes the build process for lazyos \ No newline at end of file +# LazyOS Build Directory + +This directory contains files for building the LazyOS desktop environment - a containerized web-based desktop for running the LazyPM survey system. + +## Contents + +- **Dockerfile** - Container definition based on LinuxServer Webtop +- **setup-desktop.sh** - Initialization script that creates desktop shortcuts +- **survey** - Survey binary (copied from bin/ during build) + +## LazyOS Overview + +LazyOS provides a browser-based desktop environment where users can run the LazyPM survey tasks in an isolated container. + +It's useful for: +- Running the survey system in a controlled environment +- Providing a desktop-like experience through a web browser +- Testing the survey interface without local setup + +## Building LazyOS + +From the project root: + +```bash +make os-build +``` + +This will: +1. Build the survey binary +2. Copy it to this directory +3. Build the Docker image tagged as `lazyos:latest` + +## Running LazyOS + +```bash +make os-run +``` + +Access the desktop environment at http://localhost:3000 + +The container exposes :3000 for http and :3001 for https + +## Stopping LazyOS + +```bash +make os-stop +``` + +This stops and removes the lazyos container. + +## Dockerfile Details + +The Dockerfile: +- Uses `lscr.io/linuxserver/webtop:latest` as base +- Installs gcompat and libc6-compat for binary compatibility +- Copies the survey binary to `/usr/local/bin/survey` +- Includes setup-desktop.sh for desktop shortcut creation + +## Desktop Setup + +The setup-desktop.sh script runs on container startup and: +- Creates a Desktop folder for the 'abc' user +- Creates a desktop shortcut named "PM Survey" \ No newline at end of file