Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fchauvel/rpp

Rapid Project Plans
https://github.com/fchauvel/rpp

cli gantt-chart lightweight project-management

Last synced: 6 days ago
JSON representation

Rapid Project Plans

Awesome Lists containing this project

README

        

# RPP — Rapid Project Plan

[![NPM Version](https://img.shields.io/npm/v/@fchauvel/rpp)](https://www.npmjs.com/package/@fchauvel/rpp)
[![NPM Monthly download rate](https://img.shields.io/npm/dm/@fchauvel/rpp)](https://www.npmjs.com/package/@fchauvel/rpp)
[![Build Status](https://travis-ci.org/fchauvel/rpp.svg?branch=master)](https://travis-ci.org/fchauvel/rpp)
[![Test Coverage](https://img.shields.io/codecov/c/github/fchauvel/rpp)](https://codecov.io/gh/fchauvel/rpp/)
[![Code Grade](https://img.shields.io/codacy/grade/bd70b010385c4f18a31d24dd44de4580.svg)](https://app.codacy.com/manual/fchauvel/rpp/dashboard)

RPP is a CLI tool to quickly generate project plans including Gantt
charts. Project planning for developers in a way. We review its key
features, but checkout [the documentation][docs] for more details.

## Requirements
RPP is a [NodeJS](https://nodejs.org/en/) application and you must
have NodeJS up and running on your machine. RPP is tested on Node 10,
so later versions should work.

## Installation

```shell-session
$ npm install --global @fchauvel/rpp
```

## Gantt Charts

To export the associated Gantt chart, use:

```shell-session
$ cd docs/samples/epic
$ rpp gantt -p workplan.yaml -o gantt.svg
```

This yields the following Gantt chart:

![Sample Gantt Chart](https://raw.github.com/fchauvel/rpp/master/docs/samples/epic/gantt.svg?sanitize=true)

## Project Descriptions

### Work Plan

RPP consumes a description of the project split into multiple files
(YAML or JSON), one for the workplan, one for the teams, etc. See for
instance `docs/samples/epic/workplan.yaml`. This file specifies the
work plan (work packages, tasks, deliverables and milestones) of our
sample EPIC project (see the [workplan schema][workplan-schema]). Here
is an excerpt:

```yaml
project:
name: EPIC
breakdown:
- name: Project Management
breakdown:
- name: Infrastructure for Communication
start: 1
duration: 48
deliverables:
- name: Infrastructure for Communication
kind: Software
due: 3
- name: Financial Reporting
start: 1
duration: 48
deliverables:
- name: Intermediate Financial Report
kind: Report
due: 24
- name: Final Financial Report
kind: Report
due: 48
```

### Project Team

RPP also accepts a description of the team, that this, the persons
assigned to the project together with their roles (see the [team
schema][team-schema]). Here is an excerpt of the EPIC team
description.

```yaml
team:
name: EPIC
members:
- name: SINTEF
members:
- firstname: Franck
lastname: Chauvel
leads: [ WP1, T1.1, T1.2, T3.1, T4.4 ]
- firstname: Brice
lastname: Morin
leads: [ WP3, T2.1, T3.3 ]
- firstname: Ketil
lastname: Stølen
leads: [ T1.3 ]
- name: UiO
members:
- firstname: Olaf
lastname: Owe
leads: [ WP4, T2.2, T4.1, T4.2, T4.3, T5.2]
```

You can pass the team to the `rpp gantt` command using `--team|-t`
option, so that the Gantt chart indicates who's leading each task. For
instance:

```console
$ cd docs/samples/epic
$ rpp gantt -p workplan.yaml -t team.yaml -o gantt.svg
```

## Sanity Checks

RPP can also run sanity checks on your project description to help
spot inconsistencies. To do so, use the following command:

```console
$ cd docs/samples/erroenous
$ rpp verify -p workplan.yaml
1. Warning: 'EMPTY WORK PACKAGE' on 'WP 2'
- Work package 'First Package' is empty.
- Tip: Have we forgotten some tasks or work packages there?

2. Warning: 'NO DELIVERABLE' on 'T 1'
- Task 'First Tasks' has no deliverable
- Tip: Do we miss some?

3. Error: 'LATE MILESTONE' on 'MS 1'
- Milestone 'First milestone' comes after project end.
- Tip: Check the milestone date

2 warning(s), 1 error(s).
```

Here as well the `-t|--team` option allows us to include the team
description.

RPP checks for the following:

- Work plan consistency

- Empty work package, that is, work packages that do not contain
any tasks or work packages.

- Single activity work packages, that is, work packages that
contain a single task or work package.

- Discontinuity in work packages, that is, activities in work
packages that are neither overlapping nor contiguous in
time. In other words, RPP search for work packages that are
idle at some point.

- Tasks without any deliberable.

- Deliverable due outside the task period.

- Milestones set outside the project period.

- Teams consistency

- Empty teams
- Duplicate activity leader
- Tasks without contributors
- Activities without leader
- Idle partners (without any role)

[docs]: https://fchauvel.github.io/rpp/index.html

[workplan-schema]: https://github.com/fchauvel/rpp/blob/058f1722d116955bb9a018dcca6287a926044670/src/storage/adapters/schemas.ts#L29

[team-schema]: https://github.com/fchauvel/rpp/blob/058f1722d116955bb9a018dcca6287a926044670/src/storage/adapters/schemas.ts#L111