Brandon Haakenson

Software Developer
Github | LinkedIn

Projects

Interactive IP Address Heatmap

The goal of this project was to take a dataset of IPv4 address locations and plot them as an interactive heatmap. Made using React, Django, Leaflet, and deployed on DigitalOcean (originally AWS) using a Docker container.

Atallah/ACP

This project contains the code that my team members and I wrote for our publication in TPS 2019 (see publications page for more details). Using Python and ideas from related works we were able to create a program implementing a cryptography-based hierarchical access control scheme.

Secure Digital Provenance

This program is a prototype implementation of a secure digital provenance scheme outlined by Rangwala et al.(2014). This scheme uses a chain of cryptographic hashes in order to provide an unforgeable chain of custody. In this way, all actions performed on a digital object are recorded and verifiable through an audit. Reference: Rangwala, M., Liang, Z., Peng, W., Zou, X., & Li, F. (2014). A Mutual Agreement Signature Scheme for Secure Data Provenance.

Habit Tracker

This project was built outside of class and is inspired by a habit tracking technique generally known as the “X Effect”. The idea behind this technique is that a person should mark a large “X” on their calendar for everyday that they successfully complete a certain task. This provides visual reinforcement and encourages the person not to break a consecutive streak. After seven weeks of doing so a person is expected to successfully have formed a habit. The goal of this project was to create a web application version of this habit tracker using Python for the backend and Javascript for the frontend. This project also makes use of JSON web tokens for authentication purposes.

Maze Generator

This project will generate and draw a maze on screen for the user to solve. The maze is generated by creating a graph and then using a recursive depth first search to carve out a path. Once the maze has been carved onto the graph the program then renders it onto the screen. At this point the user is able to move along the path using keyboard input until they reach the finish.