Documentation
¶
Overview ¶
Package kanban implements Kanban logic.
Kanban is Project oriented, where a Project holds the context for given set of Stages and Tickets.
Projects are independent of each other.
Notes:
Project - represents some project that can be broken down into to discrete tasks, described by a name - each project has it's own arbitrary pipeline of stages with which tickets move through left-to-right - contains an ordered list of stages - stages are re-orderable - can be renamed - can be deleted
Stage - represents an important part in the lifecycle of a task, described by a name - contains an ordered list of tickets - tickets are re-orderable - tickets can advance back and forth between stages, typically linearly - can be renamed - can be deleted
Ticket - contains information about a task for a project - is unique to a Project and sits within one of it's stages - cannot occupy more than one stage - can be edited - can be deleted
Index ¶
- type Direction
- type Project
- func (p *Project) AssignTicket(stage string, ticket Ticket) error
- func (p Project) Clone() Project
- func (p *Project) Eq(other *Project) bool
- func (p *Project) FinalizeTicket(t Ticket)
- func (p *Project) ListStages() []Stage
- func (p *Project) ListTickets(stage string) []Ticket
- func (p *Project) MakeStage(name string)
- func (p *Project) MoveStage(name string, dir Direction) bool
- func (p *Project) MoveTicket(ticket Ticket, dir Direction) bool
- func (p *Project) ProgressTicket(ticket Ticket)
- func (p *Project) RegressTicket(ticket Ticket)
- func (p *Project) StageForTicket(ticket Ticket) *Stage
- func (p *Project) String() string
- func (p *Project) UpdateTicket(ticket Ticket) error
- type Stage
- type Stages
- type Ticket
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Direction ¶
type Direction int8
Direction encodes mutually exclusive directions.
type Project ¶
type Project struct { ID uuid.UUID // Name of the project. Name string // Stages is the list of stages owned by the project. Stages Stages // Finalized is a psuedo stage that contains all finalized tickets. Finalized []Ticket }
Project is a context for a given set of tickets.
func (*Project) AssignTicket ¶
AssignTicket assigns a ticket to the given stage.
func (*Project) FinalizeTicket ¶
FinalizeTicket renders the ticket "complete" and moves it into an archive.
func (*Project) ListStages ¶
func (*Project) ListTickets ¶
func (*Project) MoveTicket ¶
MoveTicket within a stage.
func (*Project) ProgressTicket ¶
ProgressTicket moves a ticket to the "next" stage.
func (*Project) RegressTicket ¶
RegressTicket moves a ticket to the "previous" stage.
func (*Project) StageForTicket ¶
StageForTicket returns the stage containing the specified ticket.
func (*Project) UpdateTicket ¶
Update an existing ticket. It is an error to attempt to update a ticket that does not exist.
type Stage ¶
Stage in the kanban pipeline, can hold a number of tickets.
func (*Stage) Assign ¶
Assign appends a ticket to the stage with a unique ID. Existing tickets will be duplicated, but with different IDs.
type Stages ¶
type Stages []Stage
Stages is a list of Stage.
type Ticket ¶
type Ticket struct { ID uuid.UUID // Title of the ticket. Title string // Summary contains short and concise overview of the ticket. Summary string // Details contains the full details of the ticket. Details string // Created when the ticket was created. Created time.Time }
Ticket in a stage.
Directories
¶
Path | Synopsis |
---|---|
cmd
|
|
Package storage specifies a storage interface for Kanban Projects.
|
Package storage specifies a storage interface for Kanban Projects. |
lazy
Package lazy implements a lazy storage that only touches the disk when necessary.
|
Package lazy implements a lazy storage that only touches the disk when necessary. |