The idea behind this program is to build a twitter like system that has user accounts, shout-outs (instead of tweets), followers, etc. The goal of this program is to allow users to log into the system and and be presented with their history of shout-outs as well as shout-outs that have happened since the last time they logged in.
NOTE: All shoutouts and user information must be stored in files that are read at the start of the program. This information is only written back to the files before the program closes. There should be no file access during the execution.
This program should only allow the user to use the system if they have an account. Account information and shout-outs need to be saved between executions of the program to files. The following list is the functionality that should be available to registered users:
The shout-out view shows all of the shout-outs the user has made and those sent to them by their followers. When you view the followers list or the following list, then the user should have the option to see the shout-outs for that user. Posting a shout-out is where the user post to their shout-out list for others to see, and sending a shout-out is where the user sends a shout-out to a friend. The shout-outs posted by the user show on their list of shout-outs and their followers list. The shout-outs sent to other users show up on that user's private shout-out list. The user that receives the shout-out has the option to re-shout the shout-out which means it will behave as a post. The reshout should indicate which user sent the shout-out originally.
The add to following option is where a user can become a member of another users followers list. Therefore a users following list is updated at the same time another users followers list is updated. The user can then view their following and followers list.
When the user logouts, the program should not stop. It should allow another login. There can be an exit option to stop the program.
Here is a helpful link to a twitter page: twitter.com/#!/espn_colin
This program has interactive input to allow users to login and use the functionality of the system; this can be done with menus, commands, etc. However, the shout-outs for each user should be stored in one or more files. The file organization is up to you. The account information, list of followers, list of following, etc. should also be stored in one or more files. This file organization is also your decision.
Your output will be screen output for selected options and those results. You will also have to update appropriate files when shout-outs are posted or when followers/following list are updated.