Sinatra Project Update: I Love Me Book

In seven days I have coded the ability to create a service member account, add a book to it, and an award to a book. I have not added edit and delete functionality yet. But I will have that completed this week. And at best, I will complete a simple front-end design beyond the Corneal gem’s HTML and CSS styling, which I honestly do not want to utilize. If time permits, I’ll change it and make a design of my own, perhaps, with the help of some bootstrap code. Otherwise, I’ll submit the project and improve upon it at a later time. (In all actuality, I would like for this web application to become a legitimate deployed app in the far future.)

For the TL;DR folk: Far below the reading are some screenshots of the few CRUD operations I’ve coded, which are New and Show. Otherwise, the rest are my primordial thoughts and “feelz” on this little project.


Beyond simple textfield data entry by the user (as shown below), the real deal, I believe, is to eventually add the ability to associate documents with the text information through document uploads, and easy presentation of the documents into I Love Me Book. Obviously, the implied task is to utilize cloud APIs in the direction of this app as a centralizing resource. I feel like this is a golden idea!

Why make an I Love Me Book app?

To be clear, I don’t want to thwart cloud file storage services. I think it’s smarter to leverage them through APIs to build a powerful digital binder exclusively designed and tailored to each United States military branch through a seamless application that just works. The goal is easy compilation, easy navigation, and exquisite professional military presentation of documentation that can be searched quickly, and shared via all forms of digital communication “right out of the box,” in one place.

A physical binder, which we call an “I Love Me Book,” holds an organized and tabbed record of all of a service member’s military accomplishments and personally identifying information (PII). Sadly, the army is notorious for poor record-keeping. Hence, the “I Love Me Book” practice. To this day I have yet to find a well-designed all-in-one digital application built with the ease of Facebook, the resourcefulness of Google Docs, and the business sharpness of Microsoft 365, in which to accomplish the same thing digitally in one place. One can obviously rely on a conglomerate of disparate digital cloud services to produce the digital analog to a physical binder of military career documentation—which I do presently. But as I stated in an earlier post, it isn’t a fun and intuitive process that fits the direction the whole world is taking with regards to user and data interaction.

People don’t want bells and whistles alone. They want their data to reflect the dynamism of real life. This is why I love using a digital assistant. It is my data come to life, or as close to it as presently possible.

On that last point…

To my great chagrin, I find so many people in my social circles have a Gmail account, but are agnostics towards Google’s incredibly useful cloud applications. (I admit that I was one of them.) I am discovering—based on people’s actions, despite what they claim in words—that people want think-less mobile apps versus technical productivity tools like Google Drive or Microsoft Office 365. The traditional web (desktop or laptop with a browser) is becoming the practical equivalent of still traveling to brick and mortar businesses to pay your bills in 2018 as opposed to paying them online. (No offense to those who still do the former.) People don’t want bells and whistles alone. They want their data to reflect the dynamism of real life. This is why I love using a digital assistant. It is my data come to life, or as close to it as presently possible.

For example, you can go to instagram.com to look at your “gram.” But you cannot upload anything with a web browser. Instagram is a mobile app-based platform. Why? People have been trained to want apps and they want apps that make their lives happen—that is, the app gets out of your way and blends into your way of life, and never the reverse. Technicality, with its attendant complexities, is not in vogue anymore! Apple is the master at providing the tech-less experience through both its hardware and software, thus making tech-less tech a legitimate art and science in service to life in a complex world. This is true primarily because of Apple’s superb design philosophy, which informs their hardware design, user interface (UI) and user experience (UX) design, coupled with a preternatural forward thinking for what people fundamentally need and want through a humanistic lens.

With hard work and patience, I would like to provide a person-conscious solution—not just a static tool—for service members, available on the web and mobile. Finally, I will focus primarily on the Army to start. Later down the line I will incorporate the other military branches. Although the branches have similar operational structures as the US military wing, their respective terminology, digital forms, and operations are different enough to require some intensive research and familiarization to design for them.

Anyway…

I’ll build the web app version to start, obviously.


What follows is by no means a minimum viable product! However, I have been sketching on paper a conceptual framework for how an enlisted army career and commissioned army career looks and plays out. Then I want to translate them into how the service member would need to interact with their documentation, both in the compilation process and presentation within the application. I want to build I Love Me Book to stoke feelings of accomplishment and security in knowing one has a trustworthy platform with which to store and map a career. (Yes! I am concurrently thinking ahead of my current thinking ahead. haha!)

What you see below are the beginnings of fulfilling the project’s basic requirements. It will evolve. ;)

Screenshot from 2018-09-30 11-34-45.png
Screenshot from 2018-09-30 11-35-01.png
Screenshot from 2018-09-30 14-34-34.png
Screenshot from 2018-09-30 14-29-57.png
Screenshot from 2018-09-30 14-28-47.png
Screenshot from 2018-09-30 14-39-45.png
Screenshot from 2018-09-30 14-30-17.png
Screenshot from 2018-09-30 14-30-07.png


Sinatra Project: I Love Me Book

The United States Army has a cultural tradition of encouraging its members to create what is called an “I love me book.” At first, the phrase sounded very odd to me when I was first schooled on the practice. But it is the practice that makes the name so relevant and important! Generally, I keep a lot of mymilitary paperwork in the cloud for ready access when needed. But this created a new problem. I constantly have to sort through a file system to locate the documents that I want. And although I use a fairly uniform file naming system of my own, it does not avail data in the way that I want to review them.

So I came up with the idea of building a web application (and eventually a mobile version) that provides a comprehensive order of presentation based upon the natural career progression and processes of the United States armed services. At this time, I am only familiar with the Army’s personnel records handling and other administrative data handling. But I think for now this is a good start.

I will go into more detail about my app in a later post.

But, so far, I have built the frame of my project and successfully tested creating a basic user account with my app. I’ve also set it up a live deployment as I code it on Heroku. I’ll share the link when I complete my MVP.

Screenshot from 2018-09-24 21-56-00.png


Flatiron School Self-Paced Learning Path: Checking In

#Facts

I just sat down and re-sketched my learning schedule in Google Calendar based on my new learning velocity since having returned to work. Based on how far I mapped getting through the remainder of the Learn.co curriculum, it will probably take right up to my birthday to complete (April 2019). Unfortunately, I only have enough money to cover three more months (October to December 2018). So I will probably have to quit by the time I’m about 60% of the way through the curriculum.

It is wonderful to see how far I have come. But the situation is, uh, well undeniable. I don’t have any passive income nor do I have anyone to ask for $3000 additional dollars, much less $50.

Now, there are people who say that people who cave to despair dabble in the pit of certain doom. I am not that guy. What I have stated above are facts. However, I also know that facts can change on a dime with and without any of my involvement. I am actively surveying for alternatives and options to keep me in this program.

With that said, I am not okay right now because I am justifiably concerned about my progress in the Learn.co program. But no matter what comes my way, I will be okay in the grander scheme of life.

At the end of the day, I am not catastroph-izing, in case I am not being clear enough for the reader.

Solution/Plan (Not what I want but what else is there?)

I am going to keep going, learning as much as I can. Once I’m out of money, that is it. December is my cutoff, basically.

I will resume my online degree with University of Maryland University College in Software Development and Security.

(If you read my earlier posts, you know that I postponed my software development degree to attend Flatiron School because I felt that Flatiron was a somewhat faster path to career transition and employment in the field as a junior developer—just to get my foot in the door. Also, I have never disclosed on this blog that I’m not just studying coding, but I am concurrently preparing for my IAT Level I exams which are DoD approved 8570 baseline certifications.)

IAT Level I Required Credentials

  • A+ CE

  • CCNA-Security

  • Network+ CE 

  • SSCP

Thinking intersectionally, for people like me where the deck is stacked against you, we are at best cornered into spreading our educational goals over large spans of years beyond traditional timelines as we work others jobs (if that) to remain afloat, grinding to make it in unseen and less glamorous ways. It is about survival in an economy that is increasingly a crushing fight. The years of education are sandwiched between frustrating sacrifices of self and goals (i.e. education) for family; wives, husbands, partners, and more.

Can’t get into my feelings too much because…it doesn’t help the situation. I’m just going to remain focused and keep the faith as I keep grinding #beyoncestyle (discipline and hard work). Rooting for my own damn self! :)

Wishing myself good luck!

The Case of the Sinatra Playlister

This was the most challenging and grueling lab to date! But first an anecdote.

As of today I have completed Sinatra Playlister Lab. No lie. It took me roughly a month and a half to finish it. Let me explain that I was once a full-time student with no daytime work obligations. Every single day was mine to devote to Learn.co. Then I went back to work by the time I was mid-way through the Sinatra curriculum on Learn.co. Working roughly 8 am to 4 pm workdays on top of family and social obligations with school left me with two-hour periods per night at best during the week and weekends to make headway through the curriculum.

Why share the anecdote? I want other students to get a sense of realness from me, at least. It can serve as at least one example or barometer for a working part-time student...at the risk of sounding like I'm complaining. Not sorry. This is real life folks!

At any rate, it is a wonderful relief to have struggled, striven, and thrown my computer at a wall to get this far. …Okay. I didn’t throw my computer or anything. But the Office Space computer smash GIF went through my mind on many late nights. One word: catharsis. You have to have a sense of humor as a coder. Laugh at yourself, the situation, and don't take things too seriously, lest you get in your own way.

In seriousness, here are some tips for getting through this lab without fear of a spasmodic episode of violence against your tech. (lol)

  • Follow the test specs in order!

  • You will have to create a module for two common methods; one an instance method and the other a class method.

  • Enable sessions in the application_controller.rb file, as it is a parent class to the artist, genres, and songs controllers.

  • Place the use Rack::Flash code directly within the SongController class.

  • The flash message will go in your post and patch routes of yourSongs controller.

  • The test specs have keywords that refer to the Capybara for things it will look for in your HTML forms, such as fill_in and click_on.

  • Give careful attention to the test spec lines of code that begin with expect(page), as they are clues to passing several test specs.

  • In your new.erb and edit.erb Song forms, ensure that you begin your iterator with a direct call to the Genre class as opposed to store Genre.all as an instance variable within the Songs controller. Doing the latter will produce a confusing error message that won't clue you into the former solution!

    <% Genre.all.each do |genre| %>

    --code--

    <% end %>

  • Make sure to add the correct values for the name and id attributes of each input HTML tag in your edit.erb and new.erb forms within the Songs view.

  • IMPORTANT! When you create your edit.erb form in the Songs view make sure to add the Artist attribute with its erb value from the database. Otherwise, several remaining spec tests will not pass. There are no instructions that will make this apparent, especially if you don't intuitively realize that this needs to be added!

    <input type="text name="Artist Name" id="artist_name" value="<%= @song.artist.name%>">

All of these bullet points were major delays towards completion! Maybe I didn’t remember past lessons well. Maybe I had other things on my mind. Who knows what? But I’m sharing them for any other student that wants to avoid the frustrations I ran into.

Just paying it forward! :)

Happy coding!

Also posted in Flatiron School’s Learn Magazine.