Stylized Alex Ward logo

Portfolio

GW2API is a nodeJS module designed to help facilitate communication with the excellent Guild Wars 2 API. It features several convenience methods that chain calls together in order to make more friendly results, as well as an internal storage mechanism to cache the results of calls without much effort.

import { GW2API, Memstore } from "@cthos/gw2-api";

const api = new GW2API();

// Set storage system to RAM if no access to localStorage
api.setStorage(new Memstore());

// Get daily pve achievement names:
const achievements = await api.getDailyAchievements(true); // the true is default, but this will translate the IDs to their objects directly
const achievementNames = achievements.map((a) => a.name);

// Get all character names associated with an account.
await api.setAPIKey("YOUR-TOKEN-GOES-HERE");

api.getCharacters().then(function (res) {
for (var i = 0, len = res.length; i < len; i++) {
// This API call just returns an array of string character names.
console.log(res[i]);
}
});

// Get Character Details
api.getCharacters("Zojja").then(function (res) {
console.log(res);
});
cthos@localhost:/Documents/Code/gw2-api$ node example.js
Getting Daily PVE Achivements:
Daily Kryta Vista Viewer
Daily Queensdale Event Completer
Daily Fractal
Daily Frozen Maw
Daily Maguuma Jungle Lumberer

Gitlab: https://gitlab.com/cthos/gw2-api

NPM: https://www.npmjs.com/package/@cthos/gw2-api

atom-gitbook is an Atom.io package which helps work with Gitbook by providing a sidebar that parses and displays the table of contents, and allows you to manipulate it from the editor.

Github: https://github.com/cthos/atom-gitbook

Because I needed a way to convert odt files to pdf files on the fly (and whenever they were updated in Dropbox), I wrote a quick Dockerfile to wrap up some common functionality in order to watch a mounted volume.

It uses fswatch to watch the filesystem (using the poll method since inotify generates around 12 calls per Dropbox file change) and a small shell script to invoke Libreoffice's command line.

Github: https://github.com/cthos/odt-to-pdf

Phantom Jetstream is a front-end performance testing tool written on top of phantomjs which provides reporting and metric tracking of various performance statistics. It can be set up to fail with a non-zero exit code if the longest resource load time takes longer than some number of seconds, or if {X} header isn't present or set to a wrong value.

It features a basic event dispatching system that can be used to hook into the checks it is doing.

Phantom Jetstream Img

Github: https://github.com/cthos/phantom-jetstream

Volcano is an api first billing solution. I've been involved in helping create the SDKs as well as a few different enhancements to the dashboard.

Github: https://github.com/volcano/volcano

The Pathfinder Player Toolkit is a mobile tool for keeping track of your character in real time.

It is optimized for managing active effects so that you never forget to add the bonus for Bard Song ever again!

PFPT Example

Github: https://github.com/cthos/pfpt