About Project
I decided to do my rails portfolio project on an application where you can post and find job opportunities. The inspiration of this project came from an idea of a future personal project that I will work on in the future. This project serves as a prototype of how I will build it and to see what it takes to create a job searching website.
Process
After deciding what my project was going to be, I began to create my models, and used Devise to set up my login authentication system. After having devise working, and I was able to log in and log out, I decided to set up Omni-Auth for Linkedin. At this point of the project, it was a big mistake, and I hit a wall.
The big wall that I hit was due to me trying to add additional “Fancy Features” to my project, before the frame of the website and how everything was going to be associated with each other. This was a big lesson for me as I became very frustrated and was not making any progress. To overcome this problem, I decided to create a new repo, and start over. Starting over, and taking a different approach was very beneficial, as I was able to create my models and associations more effectively and focus on the fancy gadgets of my application later in the process. I was running smoothly until I made a mess of my code and wanted to revert to a previous commit. Having a clunky commit history became a problem as it was hard to figure out what I did where, and there was a lot of activity in each commit. Improving my git commits drastically improved my process, as I was explaining what each little change was doing to the program. Getting a license to GitKraken helped a lot as it was very easy to use, and I was able to keep track of what I was doing.
Talking to a few of my colleagues at The Coder School, I figured out that another way to improve my web development is to write tests as I make improvements and features to my project. I failed at doing so, and as a result of this, I figured out that some features that I added would make other features not work. If I wrote my tests, I would be able to test to make sure that all of them always work, instead of chasing errors in circles.
Taking a break is another thing that I learned while working on this project. I would spend hours looking at the current problem that I was working on and started trying the same things in a loop. Walking away from the code to give myself a mental break and reassessing the problem, as well as solutions to the problem helped me power through, and I was able to solve problems more effectively.
All in all, I learned a great deal while completing my first project in Rails, and I feel very accomplished. Creating your first Rails Application is no easy task, and all of the hard work has paid off. Next time I begin a project, I will plan more carefully, have a healthier git commit habit, work on the skeleton of my application before adding fancy gadgets, and write tests.