I built this project shortly after completing the Udacity CS253 "Web Development" course when it was first released. I wanted to apply my newfound skill at creating webapp2 apps to good use, and at the time I wanted an online portal for my students to access lessons, collaborate, and solve problems.
qCalculus was built in the summer of 2012, and occupied essentially of my time. At the time, I had no idea what unittest were, and I didn't even know what version control was - I saved all of my code in a dropbox folder and deployed it to the app engine development server to manually check it things were working. While building this I learned how to use twitter bootstrap and the importance of caching objects to improve performance.
The discussion board allowed my students to ask questions and answer questions. I modeled it very closely after the discussion board that was available to use at Udacity.
I wanted the platform to have a bit of gamification to it, so I created ribbons in photoshop and awarded them to students as they completed certain tasks. Some ribbons were procedurally awarded, others were manually awarded by me. Students loved the ribbons!
I really enjoyed the interface at Udacity, so I tried to copy it here.
I spent the entire summer putting this app together; it truly was my first large software project. Unfortunately, after about 12 weeks of maintaining this app and writing content for the lessons (each video took me quite some time to produce) I simply ran out of time to keep the lessons going. Students really enjoyed the platform, but it was just too difficult for me to maintain.
I should have known about test-driven development at this time, which would have saved me a ton of frustration as I was trying to discover bugs. It would have also been nice if I had discovered the high replication datastore (NDB) which automatically caches objects - that would have saved a ton of time!