Homework Assignment 11

Making Our Social App Persistent

CS 2530
Intermediate Computing

Due: Saturday, December 8, at 6:00 PM


Note the same unusual due date and time for Homework 10!

Fast forward to early 2015. Your homegrown replacement for Twitter is in its second iteration and drawing raves from everyone in the company. It is not a full-featured social media app yet, but it is theirs: open source, written in the company's primary programming language, and extendible in ways that your users find most useful.

Why limit yourself to someone else's program when you can make what you want?

Feature requests are rolling in with regularity now. You decide to address them in small releases, as the application started, so that you can get user feedback quickly and build on the real needs and wants of your users. That is almost always better than guessing.


Your tasks are to extend your simple messaging system with a few new features:

NOTE. You must implement the last bullet -- persistence to data files -- either before implementing the other three or after implementing the other three. If you have time to implement only a subset of features, we want to have fully-functional features.


Your tasks is also to extend your simple interface with a few new features:

Your system is growing but incomplete. Consider it still to be a prototype, subject to changes based on feedback from users and your employer. As a result, you should continue to use the design principles and design patterns you have learned to create a program that is as easy to extend and modify as possible.

Feel free to add your own style to the app -- as long as your solution provides the features outlined 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. So design your program in a way that makes your additions -- and even the assigned features -- as easy to modify or replace as you can.

Extra Credit

As many features as you have implemented, there is so much left to do! For extra credit, implement one or more of these new features:

NOTE. You may submit work for extra credit only if you have completed all the required features listed above. The only exception is persistence. You may attempt extra credit tasks een if you do not attempt to read and write user data to and from files.

Your readme.txt must state explicitly and clearly that you have attempted extra credit and, if so, which features are included in the submission.


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.

Eugene Wallingford ..... wallingf@cs.uni.edu ..... December 1, 2012