Tag: Featured

  • RecallFind

    RecallFind

    A few years ago, when my youngest son was still an infant, I happened to turn on the news and saw a recall about a popular baby formula. Thankfully, it wasn’t one we were using and I don’t think the effects were severe, but I realized I would’ve had no idea about it if I didn’t happen to turn on the news at that moment.

    So, I started looking into making a site to make it easier to find recalled products. As it turns out, there are free APIs provided by different government agencies. But being the government, they are all a little different by agency such as the FDA and the NHTSA. However, the one I was specifically looking for was the CPSC (Consumer Product Safety Commission) and they had the best site and API. Unfortunately, I’ve learned that what products that make it on the list is somewhat political. We also have a BOB stroller and this manufacturer made the news because they were going to be on the list but we’re allegedly able to pay their way out of it. But nevertheless, it’s a good service that more people should use.

    As I looked around, I found some sites that used the API, but most looked like they were class projects that met some minimal requirements. So I went about creating a site and again chose to make it using Vue JS, that I recently learned in my, ‘it’s not a portal’ project.

    I ended up using Vuetify as the UI framework and it really helped speed up the time to build the site, even thought it was something new to me and I had look up how to do everything.

    I made it so the site pulls down the API data as an AJAX post and formats it nicely into cards.  One problem I encountered is that the images can be pretty much any size or dimension and the text can be a few words or a few pages.  So, I used flexbox to keep all of the cards the same height and maintain consistent spacing and truncated the text after a certain limit.

    Once the individual cards were designed, I then made it so you can change the display from a grid of cards to a list of narrower items.  And after that, I used an animation library so the cards gradually display as you scroll.

    When you select a product, it loads a full screen modal with some slight animations.  This view has an image carousel and it displays all of the important details about the recall.  It may not look like much, but it took a lot of thought to display all of the data in meaningful way.  There’s so many different fields that may or may not be populated, so I tried to pick out the most important ones and grouped them into 3 sections that I feel makes it it easy to read, even though there can be a lot of text.


    As a side note, I really like this mirror but it was recalled. But I may be making something like this in a future project.

    One that was done, I added a search feature.

    And lastly, I added some filtering options and other links to the sidebar.

    One thing you’ll notice is that the FDA cards look a lot different.  This goes back to how each of the agencies use slightly different ways to publish the recall data.  If I was trying to productize this site, I feel like it would have to gather all of the data across agencies but display them in a consistent format.  I don’t think the technical part is actually that hard, but it would require someone to look through and make some manual edits to all of the items for consistency.

    So, I built this site and I was happy with how it turned out, but I never tried to make it into a ‘real’ site for various reasons.  But I did add it as subdomain so anyone can use the site here:

    http://recallfind.evanyamoto.com/

    And, I learned more about Vue JS. It may not specifically help me with my normal work, mostly in C# MVC, but it did help me learn some different ways to do things in JavaScript and it helped to improve my development and design skills overall. I would like to keep working with Vue, but most likely, this will be the last project I do with Vue and will pick another technology to learn for the next one.

  • Homepage in 2020

    Homepage in 2020

    So, it’s 2020 and I still like to use a homepage. I don’t like to call it a portal either, but I think that term is actually newer.

    Since 1996, I used Yahoo!, Excite, back to Yahoo, Google’s homepage that was quickly de-commissioned, back to Yahoo and then just Chrome. But Chrome with some recent tab images was just lacking to me.

    So, I started making my own. Initially, I was going to have a simple page and work on styling to make it look like a futuristic UI that you see in movies. I looked into this for a bit, but then I remembered I do something similar for work where I build client sites to integrate with our system. It might’ve been fun, but I wouldn’t have learned anything new. So I stuck with an unstyled page for a little bit and used Yahoo’s APIs and query language, YQL. Of course, this was discontinued shortly after I got started.

    So I scrapped that project and built my site using Vue JS. It was the first time working with Vue and I really enjoyed it, despite the frustrations of working with something new. I picked it partly because React seemed like overkill for what I was doing and Vue seemed simpler and there was something I liked about it from the ‘hello world’ tutorials I read.

    Once I picked the framework, things came along pretty quickly. I made some services that would parse and display news feeds, weather and some articles from different APIs. And I made another service for XML/RSS feeds.

    I never figured out what to call it, so it’s just called a sub-domain called launcher.

    I have it pinned to Chrome so I start on a tab that:

    1. Uses the Unsplash API to rotate through some images I’ve saved.
    2. Uses a weather API to load weather for locations I’ve saved.
    3. Has links to sites I usually open in the morning.
    4. A Google search bar built into the page, that I’ve never ever used.

    Then, I have other tabs on the page that load content for things I’m interested in like finance, cars, sports, technology and more. Most are newsfeeds, but I made a stock tracker like my old Yahoo page and keep a maintenance log for my vehicles.

    It was all working great until the news API I use (NewsAPI) switched to a paid model, even for a site with hardly any use. So, I’ll have to convert my newsfeeds again, but for now I have a usable portal, I mean home page.

  • Rebooting – Part 2

    Rebooting – Part 2

    It’s been nearly a year since I relaunched my personal website and I’m still back-filling blog posts. I haven’t spent as much time on it as I’d like to, but I’m pretty happy with how the WordPress API has worked out. When I started working on my site and the API was in beta, there wasn’t a whole lot of documentation or examples on how to use it. But I realize that APIs exist so you can do whatever you want and it’s really up to you to figure out how you want to use them.

    As always, I would’ve done some things differently if I were doing it now. The single function that handles the URL parameters and does an AJAX post to get the data works well, but I probably should use a JavaScript templating engine like instead of building HTML strings to display the posts. It’d be easy enough to convert it now, but I don’t know if it’s worth the time and also the resources of including another JS library like Mustache. I also would’ve started by using ESLint to format my JavaScript consistently. Again, this is something I could easily do now and fix whatever it doesn’t like with my code.

    But overall, I’m still pleased with how it’s working and the overall design. I just need to catch up on posts so I can write some in the present for once.  Hopefully I’ll get some time over the holidays.