COS 333 - “Project SnoCone” Public Project Timeline
Andrew Cheong, Stephanie He, Charlie Marsh, Shubhro Saha
Click the links for details
February 19: brainstorming
February 25: “GIT WIRED!”
March 3: “D-Day”
March 27: “Get the Scoop”
March 29: iPhone app development is underway. We have successfully implemented Facebook SSO, as well as the caching and displaying of Facebook friends. The app also exists as a valid Facebook app. Below is a screenshot from the login process (screenshot updated on April 7 to reflect new permissions):
April 3: Got the Django app and mobile app working separately so we know the mobile app can parse JSON and the Django app can generate it. Here’s a dummy response for some stub data fed to the iPhone app:
April 5: Working late into the night to be on track to have the Django app and mobile app connected for at least the single-friend view. We’ve also spent some time iterating on the ‘like’ logic--that is, how to be more selective of the Facebook likes for which we query the news.
April 7: The iPhone app is successfully communicating with the Django server! We’re also implemented lazy, asynchronous image-loading on the iPhone side, but are yet to fetch image URLs on the Django end. Here’s a sample response (note that we’ve added fetching of the friend’s Facebook profile picture):
As you can see in our database record below, Charlie’s logging into the app from the iPhone successfully generates a new user record on the fly.
April 8: The Django app is working on EC2, now! That’s the good news The bad news is all the articles are showing up in Japanese. Here’s the message we just shared with the group:
Great news: app is working on the server, everyone! Charlie, you can try it out with the mobile app now by dropping in http://54.244.117.123:8080/
The bad news: all the articles are in Japanese.
Yup. Japanese.
It's not even that the character encoding is wrong. The URLs themselves lead to Japanese web sites.
Works fine locally. Server: Japanese.
Stephanie followed up with :
"It's not a bug, it's a feature!" (Learn japanese today)
The problem is reproducible. This is probably the best bug any of us have ever seen. When running locally, all the articles are in English. After a few minutes, we realized the problem was related to Bing’s location detection. When updating the location parameter to NJ, though, news stopped flowing to EC2 altogether. Solving this is the next challenge.
April 8, 9PM: Bing is now in English! The problem related not to location detection, but to market detection. Forcing en-US solved the problem.
April 10 (~9PM): The stack and the phone are now hooked up! Everything seems to be working (aside from the fact that we aren’t getting very good results for our articles).
April 11 (~1am): The app has successfully managed to create a SQLite store and save articles locally (these article objects are for the main news feed functionality, not the individualized friend feed), synchronizing the local store with a server on-demand. In effect, most of the back-end is complete! (This doesn’t look like much, but it’s a screenshot of the app managing to pull a sample article from the server and successfully display some relevant information.)
April 19: The main news feed is now fully operational. We’ve also handled the scaling and lazy downloading of images for each article, and the presentation of Facebook profile pictures in the UITableViewCells.
On the Django side, we now return article dates, images in the friend view, and repaired the article summaries looking ugly.
April 19 (~11:40 pm)
An explosion of profile pictures!
April 29: Progress has remained steady over the past week. Mostly, our focus has been on improving performance, stability, and appearance. However, one new feature that we added recently is a “Favorites” screen: in short, users can now designate certain news articles as particularly interesting/worth saving and trigger such preferences by pressing a heart-shaped button in the article feed.
On the server side, we’ve made a number of optimizations that will improve the content response times significantly. In particular, when loading the Friend View Feed, we no longer have to query the Facebook Graph API because friend interests are stored in the database. We’ve also fixed a few bugs that made the mobile app quirky, including a patch that requires Facebook people listed with articles to be friends of the active user and not just any user of the Snocone app (for obvious reasons). Finally, we’ve streamlined the friend import background architecture to allow partial friend imports; this primes us to write a cron script that will import friend interests of newly logged-in users.
May 2: Progress remains steady. On the iPhone side, we’ve implemented most of the features that we intend to add and are mainly focusing on improving performance and catching/fixing bugs. For example, we now only update a given friend’s news feed if it hasn’t been updated since a certain date; this makes it so that you don’t have to query the server for news feeds that you’ve looked at recently. The UI and display is also coming together, as evidenced below.
May 6: We kicked off a few hours of work this afternoon by walking through the iPhone app and noting all of the small changes we needed to make. Then, we knocked ‘em down. Notifications are almost done now that the email templates have been written. The client is much more stable thanks to Stephanie and Charlie’s efforts. And we also have a cute baby on the login screen:
At the end of the meeting, we spent half an hour divvying up segments and writing the script for our presentation this Wednesday.
May 7: Everything is on track! The cron scripts for importing friends and send email notifications are almost complete, and on the iPhone side performance and stability has increased substantially over the past few days. We’ve also added some awesome animations for pressing buttons: that heart and share buttons now fade in when you press and hold on the cell; dragging into them changes their color; and releasing while inside the button activates the desired event! Below is a picture of the buttons when the user has tapped and held on a cell (over “Help local kids...”). The red version demonstrates the effect of mousing over a button.
May 12: Cron scripts done! Will be deployed on the server at our meeting Monday morning. Report almost complete.
May 14: Submitted.