Download - Gnizr Feed
gnizr-feedUniversity of Maryland, Baltimore CountyCMSC 691S/491SPaul SwensonAlice Carback
Presentation AgendaProject Selection
Project Idea
Considerations
Plan and Design
Project Goals
Initial Prototype
Simplified View of Database
Implementation Details
Core Gnizr Mods
Backend
Frontend
Complications /Known Issues
Conclusions
Lessons Learned
Future Work
Project SelectionAlice Carback
Project Idea #1• Create a News Feed feature for gnizr
• Level of Challenge: 4 • Develop a new “Community” page that displays the
latest user activities in a News Feed page similar which featured in Facebook. User activities may include events such as editing bookmarks and tags, changing bookmarks’ geotags and subscribing to new RSS feeds.
ConsiderationsDo you want to introduce social networking capability? Do you want to provide certain privacy protection feature? How can you effective arrange the display of similar information, so that the News Feed page will not look too cluttered?
Plan and DesignAlice Carback
Project GoalsCreate a feed feature similar to the one on the Facebook homepage that provides community members with an overview of the latest activityUsers should be able to see- Bookmark postings- Feed subscriptions- Folder modifications- New tags and users
Initial Prototypegnizr-feed mockup
Simplified View of Databasethese are the tables we looked at using
Implementation DetailsPaul Swenson
Core Gnizr ModificationsAdded created_on field to tag tableUpdated createTag stored procedure to set created_on field to NOW() when tag createdAdded newsfeed to the tab bar by editing gnizr-ui-menu.propertiesOverloaded gnizr-config.xml with a custom version to change database name + db authentication
BackendCreated class for handling data (FeedItem)- Uses customized DAO (FeedDao/FeedDBDao) to
collect data- Process data for output- Send data to templateStored procedures rather than raw SQLStill used most of Gnizr: changed only as neededWorked around having to modify other Dao objects by creating a single custom Dao to encapsulate new functionality
FrontendReused gnizr icon graphicsAdded feed action as community pageFeed page output had two stages- Output every “event” on its own line- Clump time-similar “events” for cleaner look
Clean, readable design
Frontend - 2
FeedAction class is leveraged multiple timesUsed to provide data to main gnizr-feed FTL (via FeedDao)Used to provide data to RSS gnizr-feed FTL (also via FeedDao)
ComplicationsPaul Swenson
Known Issues - 1• Common issues that we also encountered:
Learning curve for frameworksProperly using external resources folderInitial database username/passwordDocumentation spread out among a number of different web sites, not always clear where to go for help
Known Issues - 2Set up Tomcat on personal server- Directions provided mostly for running on
Windows via EclipseEnvironment issues: Linux vs. Windows- Some configurations were different“Knowing” Java not a sufficient pre-requisite, requires in-depth knowledge of Maven build chain, Spring and WebWork frameworks
ConclusionsPaul Swenson
Lessons Learned
Gnizr has many interesting featuresTake your time to learn the frameworksSchedule enough time to meet for the projectDifficult to see potential without people
Future Work(gnizr-feed 1.1!)
• Given more time, we would enhance gnizr-feed with the following improvements:
Better (smarter) output- number limit of results- better grouping of result types
Privacy settings
More social features (friends, fans, comments, etc)
Prettier, better commented code
Eliminate hardcoded values, store configuration settings in an xml file that users can overload/edit
Demo!!! + Questions???Paul Swenson + Alice
Carback