Open sourced version of our ECSE 321 final project