Dateline: 2014. Your boss is yammering on at a developers' meeting.
I used to love Twitter. Then the company killed it by annoying users and driving away third-party developers.
You awake from a daydream. "Twitter? What's this guy talking about now?"
Actually, Twitter would be a great way for us to communicate about our projects. Too bad it's barely usable any more, with all the paid ads and spam.
You see a chance to score some easy points. "I know what you mean, boss," you say, loud enough for everyone to hear. "Twitter was pretty sweet. They should never have ruined such a simple idea with all that stuff."
You know, Twitter really was a simple idea...
Oh, no. You can see it coming, but you're powerless to stop it.
Let's roll our own. Hey, you seem to understand the app. Why don't you take the lead?
Next time, you'll remember to keep your mouth shut. Then again, if you do this right, you might be able to take your application public and make a ton of cash.
Your task is to create a simple messaging system a lá Twitter. Our initial prototype will offer a limited number of features:
Our prototype will offer a simple interface for users, a window that looks something like this:
For now, we will run our prototype on a single computer, so we won't have clients connecting to a remote server (yet). However, we should be able to open multiple windows, each acting as the interface for a specific user:
As messages are posted by people the user follows, they are added to the feed panel.
Design Principles. This is only our initial prototype. After we get feedback from users and developers, we will likely want to add new features and change existing functionality. As a result, you should use the design principles you have learned in order to create a system that is as easy to extend and modify as possible. These include:
Feel free to add your own style to the game -- as long as your solution follows the guidelines above. If you add too many features beyond the initial mock-up, though, be prepared that future changes in the spec may conflict with your additions, requiring changes or deletions to your code.
By the due date and time, submit a zipped file containing:
For your hardcopy, submit only your readme.txt file.
Be sure that your submission follows all homework submission requirements.