Personal sized Projects

Rails Project

For the rails assessment I built a simple project logging CMS. This is a tool for crafty people who have various types of projects to catalog. Users can select the materials involved in a project or add one if it’s not already listed.

I thought it needed an image uploader and decided on CarrierWave with most of its functionality disabled. I opted for CarrierWave over PaperClip because the documentation was thorough and be could scaled up.

I added Google sign in for the Omniauth requirement, which gave me a few headaches along the way. Google recently changed the design of their developer console, so it took me longer than it should have to find where to add the redirect uri. Once I got that added, Google OAuth2 threw a Faraday SSL error. Luckily, this is a well documented error  and I found a fix (I ended up disabling certificate verification for localhost).

Here is a clickthrough:

I would have liked to add a materials catalogue or projects comments to it but I’ve already spent a lot of time on rails. Although it’s been fun, I’m anxious to start the next section to continue on the full stack track. Over and out. 

Why I decided to learn software development

Before I began the Learn-Verified program, I had picked up front-end web development. I was mostly self-taught, taking a few classes now and then to supplement. That was all fine and dandy for a while, but after several years, it was time for a new challenge. I wanted to understand the big picture—how all the parts play together—so I decided to take on full-stack. It was a natural move to make.

Of course I had some reservations. As someone who’s both right and left-brained, I was worried it wouldn’t be a perfect fit. I thought programming had the potential to be a logic-based activity that I might find annoyingly mechanical. I feared only vulcan-like computer people could be good at it. Turns out that’s not really the case, it is more ambiguous.

Spock yin yang salute

As I’ve gone through the curriculum, I’ve found there are many ways to reach the same end. Sure, there are established standards and patterns (and sure, it may take me a little longer to grasp some of them), but after you get those down, it’s very open-ended. To have the ability to take an idea and build it out from start to finish makes the world your imagination’s oyster. That’s pretty good motivation right there.

JYlive long and prosper

Sinatra assessment

When thinking of ideas for the Sinatra assessment, I wanted to make something that I could help me out personally. The idea came to me while staring at shelves of records in my living room. I built a simple RESTful app to catalog a collection of stuff, in this case, records. It could be adapted to catalog pretty much anything. 

It’s sort of like a dumbed down version of the discogs.com platform, that allows users to store, rate and list the records they own. They are also able to see what other users are adding, but only edit and delete their own music. Watch a walk-through.

Beyond the obvious RESTful routes and user authentication part of it, it was an exercise in UX patterns and what goes into building them. My limited skills prevented me from adding more features that, as a user, I’d seek out in a cataloging app. Eventually, I’d like to have it be adaptable for any sort of collection be it books, comics, Magic: the Gathering cards, you get the idea. Check it out on github.

 

CLI Gem Lesson

This is my first ruby gem. It simply lists new DVD and streaming releases in a CLI with options to view more information about particular releases. 

I had no previous exposure to gem building and was a tad immobilized at first. Lucky for me and fellow ruby learners, I found several great resources to guide and hand-hold along the way. 

My biggest hold up was getting my brain around data distribution from third party sites. The requirement of this assignment was to scrape a webpage data using Nokogiri. I started off that route but found that the movie data was dynamically generated and wasn’t scraping. I was getting empty elements.

After some quick research I found Watir WebDrive could help grab dynamically generated data. But it had to do it by opening a browser instance. Since this doesn’t make for great UX, not to mention defeats the purpose of making command line gem, I was back to square one. After some more digging, I read that the best option most of the time is to inspect the page to grab the data feed’s url. That’s what I ended up doing. It admittedly took me a long time to find it, as the page loaded a great deal of scripts.

For next time/things I learned: Make sure the data is accessible and ready to use before starting. I wasted a lot of time setting up everything thinking the data would be just fine. It worked in the end, but not seamlessly as I first thought.

Resource list:

Here’s a quick walkthrough: