https://github.com/marcolanaro/js-pert
PERT - Program evaluation and review technique
https://github.com/marcolanaro/js-pert
estimation network-analysis pert probability-distributions project-management
Last synced: 5 months ago
JSON representation
PERT - Program evaluation and review technique
- Host: GitHub
- URL: https://github.com/marcolanaro/js-pert
- Owner: marcolanaro
- License: mit
- Created: 2018-12-13T18:51:15.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-17T17:39:52.000Z (over 7 years ago)
- Last Synced: 2025-10-19T15:58:55.751Z (8 months ago)
- Topics: estimation, network-analysis, pert, probability-distributions, project-management
- Language: TypeScript
- Homepage: https://marcolanaro.github.io/js-pert
- Size: 488 KB
- Stars: 7
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# js-pert
## Program evaluation and review technique
Given a set of activities with pessimistic, optimistic, probable times and the set of dependencies, will provide:
- `expected time` for every activity
- `variance` for every activity
- the description of the activity on node `[AON]` network diagram with `predecessors` and `successors`
- earliest start `[ES]` times for every node
- earliest finish `[EF]` times for every node
- latest start `[LS]` times for every node
- latest finish `[LF]` times for every node
- `slack` for every node
- `critical path` description
With the pert description will also provide a function to calculate the probability to complete the project in `x` days.
## Install
```bash
npm install js-pert --save
```
## Example
Please look at [this example](https://marcolanaro.github.io/js-pert).
## Documentation
### jsPERT
The default exported function allow you to retrieve the description of the PERT network.
Given `activities`:
```bash
{
[key: string]: {
id: string;
optimisticTime: number;
mostLikelyTime: number;
pessimisticTime: number;
predecessors: string[];
};
}
```
You can use jsPERT as follow:
```bash
import jsPERT from 'js-pert';
const pert = jsPERT(activities);
console.log('PERT', pert);
```
Should log the PERT description in following shape:
```bash
{
activitiesParams: {
[key: string]: {
expectedTime: number;
variance: number;
};
};
network: {
[key: string]: {
successors: string[];
predecessors: string[];
};
};
earliestFinishTimes: {
[key: string]: number;
};
latestStartTimes: {
[key: string]: number;
};
earliestStartTimes: {
[key: string]: number;
};
latestFinishTimes: {
[key: string]: number;
};
slack: {
[key: string]: number;
};
criticalPath: string[];
}
```
### pertProbability
You can get the probability of completing the project in less than `x` days submitting the `PERT description` and `x` in the `pertProbability` ancillary function.
```bash
import { pertProbability } from 'js-pert';
const Pz = pertProbability(pert, 22);
console.log('P(x<22):', Pz);
```
## License
See the [LICENSE](LICENSE.md) file for license rights and limitations (MIT).