Skip to content

Commit

Permalink
Feat: initial project plan draft
Browse files Browse the repository at this point in the history
Add a first draft of the high-level project plan to the repository's README.
  • Loading branch information
bbusschots authored Dec 5, 2022
1 parent 2d2e3ce commit 56c2dce
Showing 1 changed file with 31 additions and 2 deletions.
33 changes: 31 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,31 @@
# xkpasswd-js
The official JavaScript port of the Crypt::HSXKPasswd Perl module.
# XKPasswdJS — The Official JavaScript Port of Crypt::HSXKPasswd

[Bart Busschots](https://www.bartb.ie/) created the [Crypt::HSXKPasswd](https://metacpan.org/pod/Crypt::HSXKPasswd) Perl module to be a liberally licensed ([2-clause BSD](https://opensource.org/licenses/BSD-2-Clause)) password generator for producing secure but memorable passwords using the word-based approach made famous by the [*Correct Horse Battery Staple* XKCD comic](https://xkcd.com/936/).

![To anyone who understands information theory and security and is in an infuriating argument with someone who does not (possibly involving mixed case), I sincerely apologize.](https://imgs.xkcd.com/comics/password_strength.png)

Bart is leading this port of the Perl module to JavaScript with the [NosillaCast community](https://podfeet.com/slack) as part of the on-going Programming By Stealth blog/podcast series](https://pbs.bartificer.net) he produces with [Allison Sheridan](https://www.podfeet.com/blog/about/).

## Project Plan

The plan is to develop this port in the following broad stages:

1. **Project Skeleton** — project infrastructure and specification for direct port
* Bart will work mostly solo with only typo-like pull requests accepted
* Outcomes:
* ULM Class Diagram defining the API for the direct port
* Contribution guides for developers including a project code style, a Git branching policy, and a style guide for Git commits
* Configuration files for the project tooling, specically WebPack (bundler), JSLint (code linter), JSDoc (documentation generator), and Jest (test suite)
* Automations/Scripts to build the project, run the test suite, and build the documentation
2. **Direct Port** — implementation of a feature-for-feature port of the Perl module to JavaScript
* Pull requests implementing the documented design and following the contribution guidelines will be gratefully accepted
* The issue tracker will be opened and used to track bugs and enhancement requests
* Outcomes:
* An ES6 JavaScript module implementing the documented API
* Detailed documentation
* A Jest test suite with full code coverage
* An officual NPM package for the module
3. **Maintenance & Enhancement** — bug fixes, security patches, and feature enhancements
* Details to be agreed later based on the experiences from phase 2.

**The project is currently in phase 1 — project skeleton**.

0 comments on commit 56c2dce

Please sign in to comment.