This website is intended for employers, friends, colleagues, etc. who might want to know more about my work.
I chose google app engine because it provides free hosting and I've wanted to learn about it for a while.
I'm striving for a minimalist design that is easy to maintain and update over the years. My previous two attempts at a portfolio page were cumbersome to update, so the pages stagnated. This portfolio page is fed from a google sheets document, which is easy to update. So I end up with a free, roll-your-own content management system. It turns out other people have done something similar. Here is a conceptual diagram of my system:
The whole website is actually just one page with three tabs. Jinja2 is very helpful in keeping template code clean. I also use selectize.js for tab selection, tinysort.js for sorting and the popular bootstrap framework.
You can use the filter bar to view only widgets that contain or exclude up to 3 tags. You can also sort the currently visible list of widgets by any of the 4 metrics located on the upper left of each widget, or randomize the list. The four metrics are:
- begin date
- hours spent on the project
- thousands of lines of code (determined using Code Analyzer, subtracting whitespace from total lines).
- number of people involved in the project
Here is an image of the filter bar with the 'order by' options displayed:
Each widget can expand or contract by clicking on the wedge button, and you can expand all widgets or collapse all widgets using the two rightmost buttons of the filter bar. Here is a diagram explaining the content of one widget:
And here is the row of the google sheets document corresponding to that example widget:
The purpose of all this functionality is to make it easy for you to find projects that interest you. Once you find a project you want more information about, you can go to that project's homepage for more details by clicking on the large blue project title ('Example Widget' in the above example).