Team Infinite Loop Elliott Peay & Chris Coykendall Final Project Report ODU CS 495/595 Recap TV Social is an Android application that will allow television viewers to participate in an active discussion over the Internet through an app with others around the nation about shows that are being televised. General Tasks Live, chat room discussion components for various channels or TV shows that are on-air. Implement a friend list so users can keep track of others who are watching the same programming. Design a “Favorites” module to let users flag shows that they watch frequently for easier access. Allow quick links from within the app to websites with information pertaining to the TV shows that are on. Design and operate a web server and protocol that can handle holding and retrieving information about the discussions, logins/logoffs, and monitor users. Starting up TVSocial… The TVS splash screen is where the user first lands after launching the app. From here, there are intuitive buttons to either search for a show, open current topics, check favorite shows, or change settings. Retrieving Listings The listings are requested from our own custom Java server that controls the shows and topics. Typing into the search bar will filter the listings. Retrieving Listings Single clicking the listings will open the room for that episode discussion. Long-clicking will open a context menu to add to their favorites or launch a web intent to find the show on IMDb. Discussion This is the main discussion activity. Each room being monitored is populated into a TabHost. Users can type messages to one another or post feedback (like/dislike) to the TVS server and manage shows they are watching. The device periodically polls the backend server for new messages using our own custom-designed protocol. User Control Long-pressing a message reveals options to share the users message via an Intent, add the user to friends (not implemented) or block messages from the user. In addition, the main settings Preference Activity allows messages to be censored based on a keyword check. Adding To The Discussion The menu allows for the user to quit following the discussion or create a new discussion unrelated to the episode at hand which others can join from the listings screen. Favorites The Favorites list allows users to see if their favorite shows are playing or have a discussion open. Long-pressing the items allows users to stop following the shows. Settings The Settings menu gives users the option to create a custom name (the UIN of device is still kept and sent to the backend for user control purposes.) There are also options to disable/enable sound, filter select offensive words, and detecting Time Zone (not implemented.) Behind the Scenes… Future Work and Feedback Challenges User authentication We opted to not track user login/logoff due to time constraints. The device itself transmits both the desired user name as well as the UIN of the device to the server. Chat protocol design and implementation We were able to construct basic objects for tracking shows and rooms, and organize them in a sensible manner. We designed our own custom protocol using TCP relay and wrapper classes. Chat maintenance We allow users from the client side to filter out certain key words and block harassing user messages. Spoiler Control The server itself would only serve the listings for the particular Time Zone of the handset from a reliable source (ie, tvrage.com, etc.) Localize TV listings No freely-available open listing sources for local networks. Device Time Zone can still be used in future work. Prototype Demonstration http://cs.odu.edu/~ccoykend/cs495/tvsocial/tvsocial.apk Comments or Questions? Project Homepage http://cs.odu.edu/~ccoykend/cs495/tvsocial Chris Coykendall ccoykend@cs.odu.edu Elliott Peay epeay@cs.odu.edu