It’s been quite some time since I last thought about my cookbook project. I’ve been busy with school and starting a new job. And with this job, I have more free time that I plan to take advantage of.
Earlier this month, I completed the overwhelming task of initializing my project repository. Sure, all I did was rails new recipebook, but the act of starting something on my own has always been hard for me. If it’s for school or work, where I can ask for help or direction, I am fine. But a free-form side project has always felt impossible.
One of the most important things I’m learning in my new job is to work in small steps. At first, this was very hard, as my mind races, fill with so many features that may not even be connected. Whether it’s writing an essay or code, I’ve felt like jumping around, touching a dozen files at a time, before saving.
I don’t want to take weeks to think of database structure or the design of the website. Knowing myself, if I spend more than a couple minutes at a time, I can become obsessed, and eventually use this “brainstorming” session to procrastinate. Instead, I am going to develop this app just like the one I’m currently doing for work.
- Add/replace gems in the Gemfile. I chose to use pg instead of sqlite3, and slim instead of ERB.
- Create a “Hello world!” page. This way I can make sure that SLIM, Bootstrap, and anything else has been correctly installed.
- Start with one model. While I eventually plan to make recipes have many ingredients, one recipe with two fields (title, instruction) is plenty.
- List sample records on the home page. No recipe routes just yet! I’m just creating records in the Rails console, and ordering them by title.
- Add basic CRUD functionality. Starting with basic CRUD shows that the validations and schema are working properly.
Today, I stopped at step 5, specifically after “create”, where the home page has a link to create a new recipe. Tomorrow, I will continue with “read” (showing the specific recipe), “update”, and “destroy”. And even more features as the week goes on!
Remember, my deadline is Mother’s Day, May 15, 2016! Sure, that’s less than a month away, but as I said before, I want to focus on the core features before worrying about looks. As long as the app can be used by then, it only takes a short time to apply some Bootstrap styling. And by then, maybe I’ll allow others around the world to use it.