Building Inquiryweb 1 hour at a time
Last week, I posted about an idea I’d had for Inquiryweb, a web app designed to aid the inquiry process in class by tracking questions, observations and answers.
The response I got from readers was tremendous. You helped me see completely new uses for this application, envision great new features, and gave me tremendous advice on getting started. Again, the blog-o-twitterverse comes through in a big way. So I’ve decided to try to make this a go. I’m going to make my “one hour of learning” devoted to trying to make Inquiryweb a reality.
I first should confess my lack of expertise as a programmer. 12 years ago, I took a class in software design, and at one time, I had decent enough chops to write a 5000 line program to seat students randomly in our dining hall for sit-down meals (I even figured out the STL for that one). Since then, I’ve become quite rusty, and now am mostly content to play around with Python and get bored with Codecademy (I’ll blog more about that later).
But lots of what I’ve read (and Riley Lark) say Django and Python are the new hotness in web app development, so I spent the past week working all four of the lessons in the Django tutorial—I can make a poll-wow. I also spent most of the weekend trying to configure mySQL and Django to play nicely on my machine, which wins the cake as the most un-mac-like experience I’ve ever had on a mac. Thanks to MacPorts, an awesome package installer for mac (can you say sudo port install python27-mysql) and and lots of help from Stack Exchange, I’ve gotten everything working.
I’ve also put together what I think should be a vision for version 0.1 of Inquiryweb. I’d like a super simple web front end that can allow the user to enter a question very simply with one click. Questions should be associated with authors. Three other classes I think I will need are observations, predictions and answers. The couple of CS classes I took long ago tell me that somehow these should all be subclasses of some inquiry class, but I haven’t gotten that far yet. In addition to being able to view a particular inquiry type (question, observation, etc), you should be able to view all the inquiries made by a particular author).
Basically, I’d love Inquiryweb to make it easy to enter these questions and predictions from Brian Franks inquiry class in almost real time, and then export them out in a list to paste into a blog.
I did manage to put together a very basic UML document laying out the 5 classes I’ve thought of. And that’s about as far as I’ve gotten in terms of design:
As for real coding, I’ve entered these five basic classes into the models.py document, and used it to setup the mySQL database, and that’s it. This isn’t going to be a quick process, for sure.
I also did manage to figure out github, and have now created a public repository for this project. I’m going to use the github site to track my progress on developing this app, so that my readers who aren’t interested in my efforts to become an edu-startup aren’t bored to tears.
Future plans include:
- Writing out much more of the design doc
- setting up my mac mini with a static ip (dyndns?) so that I can use actually deploy and test inquiryweb on it.
- Setting up google app engine to run inquiryweb, if I want to be really cool and try to scale this idea.
- Trying to modify the tutorials to see if I can create my own admin interface.
So here’s where I’d love more feedback and suggestions from the my super cool social media coding cheerleaders. Where have I gone off the rails? Are there resources I should be checking out? Pitfalls to avoid? Really, any help would be most appreciated.