{"id":1302,"date":"2020-10-04T01:05:47","date_gmt":"2020-10-04T06:05:47","guid":{"rendered":"https:\/\/benlevy.com\/blog\/?page_id=1302"},"modified":"2024-12-30T15:11:31","modified_gmt":"2024-12-30T21:11:31","slug":"projects","status":"publish","type":"page","link":"https:\/\/benlevy.com\/blog\/projects\/","title":{"rendered":"Projects"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Same Movies<\/h2>\n\n\n\n<p>This is a simple Node.js application for comparing movies using information from&nbsp;<a href=\"http:\/\/www.omdbapi.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Open Movie Database<\/a>&nbsp;(OMDb). Many actors, directors, producers, etc. work with each other multiple times. I decided to make this simple application to tell when the same people worked on multiple movies together. I chose to use&nbsp;<a href=\"https:\/\/benlevy.com\/projects\/nodejs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Node.js<\/a>&nbsp;because I wanted to try out using JavaScript on the frontend and backend. This project would also be a chance to get more practice with using an API. I decided to use the&nbsp;<a href=\"https:\/\/benlevy.com\/projects\/expressjs.com\" target=\"_blank\" rel=\"noreferrer noopener\">Express framework<\/a>&nbsp;on the backend and JavaScript using jQuery to keep the application lightweight.<\/p>\n\n\n\n<figure class=\"wp-block-image projectImageContainer\"><img decoding=\"async\" class=\"projectImage\" src=\"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>I wanted to start with comparing two movies, but I also kept in mind that this could also be used to compare things like TV shows and video games. I was limited by the amount of data available on OMDb, but having free access to the API meant that I could get started for free.<\/p>\n\n\n\n<figure class=\"wp-block-image projectImageContainer\"><img decoding=\"async\" class=\"projectImage\" src=\"https:\/\/benlevy.com\/img\/projects\/same_movies_1.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>For the site&#8217;s design, I used Twitter&#8217;s&nbsp;<a href=\"http:\/\/getbootstrap.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Bootstrap<\/a>. I am not much of a designer, so It was really nice to be able to use a frontend framework that already exists. Bootstrap does come with some overhead, but for this project, being able to get results faster made it worth it.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/ben010783\/SameMovies\" target=\"_blank\" rel=\"noreferrer noopener\">View on GitHub<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Smarter Playlists<\/h2>\n\n\n\n<p>This is a Java application (using the&nbsp;<a href=\"http:\/\/www.playframework.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Play Framework<\/a>) that takes an iTunes library file and exports playlists using better logic than what is built into iTunes. I was annoyed with the way iTunes computed the songs you listened to most often, so I decided to write an application that did a better job (by using average plays per day rather than total plays over time). Since I am mainly a Java developer, I decided to I use the Java version of the Play framework.<\/p>\n\n\n\n<figure class=\"wp-block-image projectImageContainer\"><img decoding=\"async\" class=\"projectImage\" src=\"https:\/\/benlevy.com\/img\/projects\/smarter_playlists_0.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Using Java for this project meant that I got to work with a language I was very familiar, but the verbose nature of Java also meant I was writing a lot of code (often to do simple things). I really didn&#8217;t mind that it took a little longer to write code because the (Java) libraries and the performance benefit made it all worth it to me.<\/p>\n\n\n\n<figure class=\"wp-block-image projectImageContainer\"><img decoding=\"async\" class=\"projectImage\" src=\"https:\/\/benlevy.com\/img\/projects\/smarter_playlists_1.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>For the frontend design, I went with a template from&nbsp;<a href=\"http:\/\/html5up.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTML5 UP<\/a>. Using the template meant that I had to customizing the site rather than creating the design from scratch. For this project, I also wanted to try supporting multiple languages. The play framework makes it very easy to define multiple versions of text.&nbsp;<a href=\"https:\/\/www.duolingo.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">DuoLingo<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/translate.google.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Google Translate<\/a>&nbsp;also helped me find translations for the Spanish version of the site.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/ben010783\/SmarterPlaylists\" target=\"_blank\" rel=\"noreferrer noopener\">View on GitHub<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Chicago Soul Revue<\/h2>\n\n\n\n<p>A local band asked me to assist them with building a website. Having a twitter account and facebook page for a band is helpful, but in the end, bands need a real site where fans can do things like contact the band, see upcoming shows, and listen to the band&#8217;s music.<\/p>\n\n\n\n<figure class=\"wp-block-image projectImageContainer\"><img decoding=\"async\" class=\"projectImage\" src=\"https:\/\/benlevy.com\/img\/projects\/chicago_soul_revue_0.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>The site had to be easy to edit, and effectively tie in other services that the band was using. I chose to use WordPress for this site because it is an extremely mature and popular platform for these kinds of sites. By customizing a theme for the site and utilizing plugins, I was able to create a very slick site that was easy for band members to maintain.<\/p>\n\n\n\n<figure class=\"wp-block-image projectImageContainer\"><img decoding=\"async\" class=\"projectImage\" src=\"https:\/\/benlevy.com\/img\/projects\/chicago_soul_revue_1.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Video and audio hosted on services like YouTube and Reverb Nation could added and removed by band members. For images, anyone with an admin account for the site could upload a new album and not have to worry about images being too compressed or being restricted to fans that had an account on an image sharing service.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">BOX Options Exchange Rules<\/h2>\n\n\n\n<p>When the BOX Options Exchange decided to put an interactive version of their rules online, I was brought in to do the design for the site. Compliance professionals need to be able to quickly navigate to relevant sections in the rules. I had to design a pixel-perfect version of the rules site that matched the design of the BOX Options Exchange website. For this project, I did not have a style guide to work with, so I had to dive into multiple CSS files to determine how to find out which styles would match the existing site.<\/p>\n\n\n\n<figure class=\"wp-block-image projectImageContainer\"><img decoding=\"async\" class=\"projectImage\" src=\"https:\/\/benlevy.com\/img\/projects\/box_exchange_0.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>This site also required a Rule Filings section that summarized the rule filings that would make changes to the rules from BOX Options Exchange. This section also linked back to the affected rules and highlighted new rule filings.<\/p>\n\n\n\n<figure class=\"wp-block-image projectImageContainer\"><img decoding=\"async\" class=\"projectImage\" src=\"https:\/\/benlevy.com\/img\/projects\/box_exchange_1.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>This project had an accelerated timeline, so I worked together with off-shore resources to integrate my design changes with changes that were made to the ASP.NET site that hosted the rules.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Same Movies This is a simple Node.js application for comparing [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1302","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Projects - BenLevy.com<\/title>\n<meta name=\"description\" content=\"Some quick examples of photography and software projects done by Ben Levy.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/benlevy.com\/blog\/projects\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Projects - BenLevy.com\" \/>\n<meta property=\"og:description\" content=\"Some quick examples of photography and software projects done by Ben Levy.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/benlevy.com\/blog\/projects\/\" \/>\n<meta property=\"og:site_name\" content=\"BenLevy.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ben.levy.pics\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-30T21:11:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/benlevy.com\/blog\/projects\/\",\"url\":\"https:\/\/benlevy.com\/blog\/projects\/\",\"name\":\"Projects - BenLevy.com\",\"isPartOf\":{\"@id\":\"https:\/\/benlevy.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/benlevy.com\/blog\/projects\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/benlevy.com\/blog\/projects\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png\",\"datePublished\":\"2020-10-04T06:05:47+00:00\",\"dateModified\":\"2024-12-30T21:11:31+00:00\",\"description\":\"Some quick examples of photography and software projects done by Ben Levy.\",\"breadcrumb\":{\"@id\":\"https:\/\/benlevy.com\/blog\/projects\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/benlevy.com\/blog\/projects\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/benlevy.com\/blog\/projects\/#primaryimage\",\"url\":\"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png\",\"contentUrl\":\"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/benlevy.com\/blog\/projects\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/benlevy.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Projects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/benlevy.com\/blog\/#website\",\"url\":\"https:\/\/benlevy.com\/blog\/\",\"name\":\"BenLevy.com\",\"description\":\"Ben Levy&#039;s Automotive Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/benlevy.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Projects - BenLevy.com","description":"Some quick examples of photography and software projects done by Ben Levy.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/benlevy.com\/blog\/projects\/","og_locale":"en_US","og_type":"article","og_title":"Projects - BenLevy.com","og_description":"Some quick examples of photography and software projects done by Ben Levy.","og_url":"https:\/\/benlevy.com\/blog\/projects\/","og_site_name":"BenLevy.com","article_publisher":"https:\/\/www.facebook.com\/ben.levy.pics\/","article_modified_time":"2024-12-30T21:11:31+00:00","og_image":[{"url":"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/benlevy.com\/blog\/projects\/","url":"https:\/\/benlevy.com\/blog\/projects\/","name":"Projects - BenLevy.com","isPartOf":{"@id":"https:\/\/benlevy.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/benlevy.com\/blog\/projects\/#primaryimage"},"image":{"@id":"https:\/\/benlevy.com\/blog\/projects\/#primaryimage"},"thumbnailUrl":"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png","datePublished":"2020-10-04T06:05:47+00:00","dateModified":"2024-12-30T21:11:31+00:00","description":"Some quick examples of photography and software projects done by Ben Levy.","breadcrumb":{"@id":"https:\/\/benlevy.com\/blog\/projects\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/benlevy.com\/blog\/projects\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/benlevy.com\/blog\/projects\/#primaryimage","url":"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png","contentUrl":"https:\/\/benlevy.com\/img\/projects\/same_movies_0.png"},{"@type":"BreadcrumbList","@id":"https:\/\/benlevy.com\/blog\/projects\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/benlevy.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Projects"}]},{"@type":"WebSite","@id":"https:\/\/benlevy.com\/blog\/#website","url":"https:\/\/benlevy.com\/blog\/","name":"BenLevy.com","description":"Ben Levy&#039;s Automotive Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/benlevy.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/benlevy.com\/blog\/wp-json\/wp\/v2\/pages\/1302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/benlevy.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/benlevy.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/benlevy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benlevy.com\/blog\/wp-json\/wp\/v2\/comments?post=1302"}],"version-history":[{"count":5,"href":"https:\/\/benlevy.com\/blog\/wp-json\/wp\/v2\/pages\/1302\/revisions"}],"predecessor-version":[{"id":1307,"href":"https:\/\/benlevy.com\/blog\/wp-json\/wp\/v2\/pages\/1302\/revisions\/1307"}],"wp:attachment":[{"href":"https:\/\/benlevy.com\/blog\/wp-json\/wp\/v2\/media?parent=1302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}