In the end of Phase 3 at the Flatiron Software Engineering boot camp, I’ve decided to make a simple task managing app called Tasker. Tasker is mainly built with Ruby on Rails and demonstrated the some of the possibilities that can be built using this syntactic sugar of a language.
First, what Tasker does is allow you to Manage what you want to do, and added capability, add tasks to the missions that you want to accomplish, like organized steps in to finishing a project you set out to accomplish.
One of the bigger functions we needed to implement was the third-party authentication which in this case I chose the ability to log in Tasker using Google. There are many tutorials on how to use Omniauth, which is a gem that can be implemented almost seamlessly into our third party login function.
One of the biggest takeaways from this project was the debugging. I spent way more time debugging the project than actually making the project this time all due to an oversight of mines. I’ve spent countless hours googling and using Stack Overflow in order to account for this bug which caused me to refactor the code in hopes of fixing my project.
However, if you are building your project out with Ruby on Rails, the oversight Ihad was concerning a parameter not being “Fulfilled” because this said parameter (in this case, ‘password’) was being asked for twice. It turns out that this one line for my validations, I used for my general validations, was causing my program to require two passwords, when Tasker only required one password. So the error raised kept alarming to “Password can’t be blank,” which is understandable, but didn’t make sense to me at the time. The main takeaway is to make a separate validations for each item (e.g. Username, Email, Password), yes seriously, keep them separated.
Understanding how to use a third party authentication, scope methods, making routes, has many to through, many to many, and using rails generation/migration/resources we some of the biggest learning experiences from this project, and of course debugging using binding.pry and byebug. thanks for taking the time to read and the journey continues.