Sprint 2 and Unexpected Inspirations


I’m not sure why I ever dreaded taking this course, considering it is becoming one of my favorite classes in the program. As I mentioned in my first blog post, I was unsure whether I would be able to relearn skills I have not used recently, such as working with databases or editing HTML. Surprisingly enough, these and other skills came back to me pretty fast, just like riding a bike. The thing I like about this course is that it is focused on just one project. In most previous classes we would complete projects within a week or two and then move on to something else. In contrast, I am enjoying the ability to focus on and refine one project over time. For instance, I may implement a page or function one way and then come up with an improvement idea for it days or weeks later. This is a unique opportunity that I did not have in previous classes. Obviously I will have to stop updating the project when the time comes to turn in the final version in a month, but for now I like watching it gradually evolve.

Since this is my first time using Python Flask, I have been consulting this Flask Tutorial video series by Corey Schafer. In the series Schafer builds a simple blogging website while explaining the basics of Flask, SQLAlchemy databases, forms powered by WTForms, and other useful tools. His guide is absolutely spectacular, and I owe a lot of my progress to him because of how well he introduces novices to Flask. For each video I would follow along and then adapt the lessons to my capstone project, often changing quite a bit in the process. After creating a few of the site’s pages and the initial database, a switch went off in my brain. I was hooked and I went through a week long frenzy of developing many of the site’s pages. Honestly, I haven’t felt this kind of enthusiasm for programming since CS 161 and 162. It was very satisfying to cross project requirements off the list while having fun in the process.

Inspiration can also come from other, sometimes unusual sources. Bear with me for a second as I will now tell you the most boring story in all of human history. Don’t worry, it’ll be quick. The other day I was shopping for apples, and the sticker on each one had a small barcode and 4 digit ID number. The scanner at checkout wasn’t picking up the barcode, and I had to enter the ID number instead. I found that kind of annoying, but for some reason that inconvenient situation reminded me of one of the project’s requirements. Each travel Experience must contain a geolocation (latitude and longitude), and at the time I had not figured out a solution for getting these values. Where do the latitude and longitude numbers come from? Do I make the user enter them? Does the user have to look them up on another site and then enter them on the “Add Experience” form? No, that would be just as tedious as having to enter the code for apples. It would be better for the user to enter an address or a general location, and then the site itself would look up the geolocation. Once this idea popped into my head I immediately rushed home and implemented it. In hindsight this solution seems kind of obvious, but at that point I was probably getting tunnel vision and had to step away from the computer for a while.

So far Sprint 2 has been proceeding very well. My teammates have been coming up with interesting ideas and we are right on schedule. Hopefully I will continue to enjoy developing the project, learning about Flask, and finding inspiration in weird places.


Leave a Reply

Your email address will not be published. Required fields are marked *