Pillager Post-Mortem

Project

Jason Sigmon
JSON’s Coding Adventures
3 min readJan 12, 2016

--

As a senior at HR, you complete three major projects. Greenfield, Legacy, and Thesis. For Greenfield, you are given four days to create something from nothing. While on the surface this sounds great, it also creates problems because you have little idea of how to get started. We looked at a list of potential project ideas that had been established by our classmates. These gave us a few ideas, but ultimately we decided we wanted to create a better way to organize bookmarks. If you have had more than 40 bookmarks, you quickly realize you probably have lost track of something you have saved. We wanted to make this easier, by keeping websites according to keywords. These keywords would come from analyzing the text of a website then returning the most common words. To do that, we utilized IBM’s Watson API. This API would prove very useful, and it worked as expected. My role for the project was to try and create a Chrome extension.

Chrome extensions were something I had a lot of experience using, but had no idea how to develop one. Fortunately, it was relatively straightforward after watching a few tutorials. What was not as straightforward was trying to add Google Polymer. Polymer is a web component kit that is supposed to make it easier to reuse customized components across an application. The issue is can be hard to determine dependencies and what Styling takes precedence. I encountered the first problem when trying to install all of the Polymer components. I discovered I only needed 5; so, I attempted to install them. What I soon realized, though, was the components would not work because the default installation does not include all of the dependencies. I was then forced to read through the code to make sure all of the dependencies were individually installed. I would recommend installing all of the Paper and Iron components to save yourself the hassle.

Once I had sorted that out, I figured that adding some styling would not be that difficult. I tried to add a stylesheet, but it kept getting overwritten by the Polymer defaults. I ended up manually changing the components default style within the Package itself. That worked and after three days we had a working prototype.

Result

Our app Pillager worked pretty much as expected on our web application. Users were able to add links that would get analyzed and categorized by keyword. We were also able to add a D3 visualization to show how individual links were connected. I managed to finish a Chrome Extension that allowed you to log in and send data to the server.

Problems

The two big bugs I could not solve related solely to submission. Our server said it had received the data my extension would send it, but for some reason, it would never appear on a user’s list of links. I’m guessing this is related to how I sent data vs. what the server expected. The second bug is the primary reason the extension can not be deployed. I added a submission listener I thought to the extension’s page, but it would occasionally add it to every page. This bug caused every page to try infinitely to send data from itself to its server. The only way to solve the issue was to remove the extension completely. I had hoped to have time to fix the jQuery, but I ran out of time after tracking down the problem.

--

--

Jason Sigmon
JSON’s Coding Adventures

Founder of Arternic, LCS Fan, and tweet @jaysig91. Feel free to reach out and say hello