Before starting my CLI project, I was very nervous about how I was going to complete it. I hard barely understood the concept of scrapping and was anxious that I would not rise to the challenge of utilizing my three week’s worth of new knowledge to build a CLI application from scratch. It also did not help that I spent days trying to find a website or API to use that would keep me engaged when completing the project. However, amidst that panic, I repeated my mantra “Step by Step. Line by Line” and dove in.
Upon choosing a topic for my project. I decided to sketch how I wanted the application to flow.
As you can tell, I originally planned for the application to be quite simple. However, once I met the minimum requirement, I caught the coding bug. Consequently, my result ended up being a bit more elaborate than I had planned, but, more on that later.
With my flowchart in hand, I started my project by adding the necessary folders and outlining the code with comments. I commented on every method my program would need and what I needed those methods to do. Step by step. Line by line.
After I finished outlining my code, I tasked myself with completing what I thought would be the most difficult part of my program, scraping the necessary information. Full disclosure, I got lucky. The website I decided to scrape was well organized and followed a structure that made extraction easy. In the beginning, I scrapped five different elements — artist name, artist URL, artist bio, representing gallery for artist, and artist statement.
Once I had these elements, I was able to fill in the rest of my code with ease, thanks to my flowchart and outline. With everything in place, my program running smoothly, and meeting the minimum project requirements, I began to wonder, what more can I do?
My head was spinning with ideas. I could list out the artist from the different locations where the festival is held. I could create relationships between artists and galleries. I could create relationships between artists, galleries, and locations. I could stylize my output. I could make a gem.
So many thoughts. But the one thing I didn’t bother doing was write any of these ideas out with the same detail and care that I used when starting the project. That would come back to haunt me later on in my project building process.
I decided that I wanted to build out relationships between artists and galleries and stylize my output. With no outline or flowchart to guide me, I started building out these relationships mimicking the same process I did when creating artist objects to galleries. I quickly realized my mistake; artists and galleries are two different objects with different attributes and behaviors. I could not build one the same way I built the other. My program required more methods for gallery objects than it did artists.
It is hard to begin to detail this part of my project process only because it was so impulsive and unorganized every step of the way. Looking at my code now, I am surprised I was able to build what I built because it far exceeds the expectation I had for myself when I started.
Completing this project reaffirmed my belief in myself. It gave me the confidence I needed to believe this program is something I am capable of doing. I am looking forward to seeing how future projects will build on my current knowledge and testing the limits of my ever-expanding coding skills. Step by step. Line by line.