update readme's
This commit is contained in:
104
README.md
104
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.
|
||||
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.
|
||||
@@ -1 +1,63 @@
|
||||
# This describes the build process for lazyos
|
||||
# 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"
|
||||
Reference in New Issue
Block a user