/accounts-manager

Simple command-line tool for managing congregation accounts and jw.org forms.

Primary LanguageJavaMIT LicenseMIT

Accounts Manager

This is a simple utility for making working with jw.org congregation accounts forms easier.

User Documentation

See the User Guide page.

Developer documentation

Build Status: Build Status

Building

To build this project you need a recent version of Apache Maven.

Open a command line and navigate to the directory where this file is located, then run:

mvn package

This will create an executable AccountsManager script under target/AccountsManager/bin, and also a zip file of the compiled application named accounts-manager-<version>-full.zip under target.

About the code

Each month's data is stored in YAML format. Global configuration (e.g. file paths) are also stored as YAML (in the user's home directory). YAML parsing is handled using the jackson-dataformat-yaml implementation that adapts Jackson APIs to use SnakeYAML parsing. Following this example the YAML data is parsed into value types managed by AutoValue.

PDF manipulations are handled by Apache PDFBox.

The actual code is Java 8, and is built using Maven. Object lifetime is managed by Dagger. Test cases are written using JUnit 4.12 and Truth. The code follows Google Java Style.