Development progress has definitely been enlightening the last week and a half. I’ve summarized highlights that have taken place to show what I’ve gone through so far and an example path of developing a HB project.
At the end of week 6, I spent Thurs. playing with Balsamiq and mocking up all kinds of ideas. Friday, I spent the day catching up on emails and just getting things in order so I could think straight. Then all I did over the weekend was start setting up my virtual environment.
This past Monday, I started to really build out the first couple Flask views. I also took some time to finally learn about CSS and how to apply it to the HTML pages. Having a couple working pages kept me motivated throughout the week.
On Tues, I built a temporary local database in SQLlite to map a couple SF neighborhood names to central coordinates. I used this for initial test purposes and applied the SQLAlchemy package to interact with my db. It was a nice brief practice in designing databases and utilizing a seed file to populate.
Wed I began learning how to use and integrate the Forecast.io app into my application through requests (vs. urllib). I was able to complete the loop of capturing a user query, pulling coordinates from my local database, using the coordinates to request forecast information and then posting the results on the HTML results page.
So guess that means I’m done…not exactly.
Also on Wed, I finally finished understanding how to keep my API keys secret in my environment and not posting them to Github (hint: .gitignore is your friend as my mentor thankfully showed me). I had worked on that as a side research since Monday with lots of help from my instructors. Last, I searched for really cute stock photos to use for each weather instance so I would enjoy looking at my results.
On Thurs, I started to build out the more details page, tweak existing pages and build out some validation points on the data (e.g. is it day and if percent cloud cover is less than 20% then a sun should show vs. partly cloudy). That was the day that I finally realized one of my biggest challenges which was based on my initial design, I was apparently trying to recreate search. Definitely a fantastic challenge but so much bigger than the scope of what I can handle right now. Fortunately, I also happened to talk to someone that day who had worked for Google and thankfully clued me in on a potential solution with Google Places.
Friday I started to investigate the Google Places API. I also confirmed that Weather Underground (WUI) does have more details and variations between SF neighborhoods. So I started reading up on how to use that API in addition to Forecast.io. Friday was really about research and tweaks since we did field trips most of the day.
This last week, we talked often about minimum viable product (MVP). Meaning prioritize the development that will give the most basic functionality for demo and testing. Technically I could argue my app is done since it does the most basic of functions, and I’ve already been sharing it with my classmates. Reality is that there is so much still to do. If anything a common challenge is that I am constantly thinking of new features and functionality that I want to add and its great practice on prioritization. So the change out of WUI could wait in comparison to other functionality since Forecast.io has very valid data.
Something to also note is that in addition to all the coding, we had several speaker visitors throughout the week, went for some cool field trips as mentioned and did interview practice every other day. By Friday, my brain was tired. It was a funny feeling because it was not the usual tired feeling and my head was not cottony like the first several weeks. I just knew I was at the no brain state anymore. It happens and is a good sign to take a break.