Scratching An Itch
Scratching An Itch
Someone recently posted a question on Quora, the question evoked lots of pleasant memories from my coding trip, so I sat and wrote the following answer, cross-posted here for your reading pleasure.
The question went as follows:
Have you ever built a coding project from scratch? If so, what did you build?
Others are nitpicking on the “from scratch” part. But as Carl Sagan famously said, “If you wish to make an apple pie from scratch, you must first invent the universe.”
For the purpose of this answer, I will define “from scratch” to mean taking an idea and fleshing it out into a working project, using all the tools at your disposal.
As an “almost graduate” from Flatiron School, I have a few projects I made. The curriculum is built in such a way that as you progress through the courses you build “freestyle” projects using the knowledge you just learned.
Here are some of the ones I really enjoyed making:
Tic Tac Toe with a working AI
The first project they had us build was a functioning CLI Tic Tac Toe game built using Ruby. This project is not fully “from scratch” being that Flatiron provided the file structure, and a lot of the code was copy/pasted from earlier lessons in the course. Nevertheless, the AI player was completely us (well, not so much an AI as a bunch of elsif statements, but it was still fun to code), and I had a lot of fun personalizing the game and giving it personality. I still consider it one of the funnest projects I did.
You can find the code for it here (including a readme with instructions on how to run it), and a blog post I wrote about coding it Tic Tac Tips.
DansDeals
The first project that was really from scratch was at the end of the OO Ruby section of the curriculum. The requirements of the project were that we make a CLI Ruby gem that scrapes a website or API for data that a user can interact with through the command line.
I chose to scrape a deals site called DansDeals (hence the name of the gem), and surprisingly the gem still works as of the writing of this answer (that says less to my skills as a developer than it does to the fact that that website hasn’t been updated since I deployed the gem).
This gem has been deployed to RubyGems, and anyone can play with it (assuming you have Bundler) by running gem install dansdeals in your command line and then running dansdeals.
You can find the code for this project here, and my blog post gem install swim
Freddit
The next project came when we finished the section covering Sinatra. For this project, I chose to make a small messaging board called Freddit (no relationship to Reddit of course).
This was a fairly fun project to code, it included more advanced concepts, like User authentication and validation, it featured admin users who could block or ban other users. Most importantly, regarding the question at least, it was even more “from scratch” than other projects I made being that the framework I used to build it, Corneal, is an open-source framework that I contributed to and helped build!
You can find the code for Freddit here, and my blog post I Challenge You Sinatra
FlyLog
Next came Rails, and when it was time for the project I decided to chose something I was passionate about, flying!
FlyLog is a pilot’s logbook built entirely with Rails, where pilots could log their hours, keep count of the planes they’ve flown, and see the total number of flight hours they have.
This project actually made it all the way to deployment, you can find it at FlyLogger.herokuapp.com
You can find the code for it here, and my blog post Fly Off The Rails
Freddit Revisited
After Rails, we switched to JavaScript and some basic libraries like jQuery. The next challenge was to create a Rails app that uses JavaScript AJAX calls to render content on the page. The instructors suggested we just add JavaScript to our Rails project, but I decided to do something a bit more challenging, and rewrite Freddit in Rails.
In the process I added more features, such as the ability for readers to reply directly to comments, nesting the comments and their replies, a bit closer to its namesake.
This project was also deployed on Heroku, you can see it at Freddit-JQ.herokuapp.com
The code is on GitHub here, and my blog post Challenges Revisited
App-Tracker
Finally, we went on to more advanced frameworks like React, and then came the time for the final project. The requirements for the final project were that we use a Rails REST API for the back-end, and use React for the client side application.
My idea for this project was to build an app to let me keep track of all the job applications I’d be submitting after I’m finished with Flatiron, I am currently in middle of the application so I won’t post links to it yet, I’ll wait until it’s finished and then update the answer (well actually, it shouldn’t be too hard to find on my GitHub page, it’s my latest busy repo :)
Edit: The project is mostly finished now, you can find it at app-tracker-react.herokuapp.com, the GitHub repo is here.
So those are some of the projects I enjoyed making. You can read more about my coding on my blog Coding Hassid
Happy coding!
Originally published at www.quora.com.