Social Network for Behavior Change Team #11: Gavin Monroe Nicholas Schramm Davendra Jayasingam Client: Yolanda Coil Advisor: Simanta Mitra Requirements / Specification Project Need & Goal What: • Social networks help the study of human behavior. How: • Yolanda Coil, needs information about user activity. • Research in human computer interaction. Why: • No other social network website allows this • Site is private and fully managed Conceptual Sketch & Description • • • • Private social network website Multiple device access Log activity -> analytics Administered by a superadmin Functional Requirements • • • • • • • • User accounts Private messaging Calendar Surveys News Feed Posts Logging Analytics Non-functional Requirements • • • • Database Backup Privacy and security Reliability Accessibility Market / Literature Survey Client has conducted market survey Admins -> ✔ Groups -> ✔ Members -> ✔ Project Plan Project Schedule Work Breakdown Gavin Monroe -> Database Design Nick Schramm -> Logging, Analytics, Front-end Davendra Jayasingam -> Back-end, Front-end Resource Requirements • • • • • Apache Web Server PHP MYSQL ?AMP Virtual Private Server Risk Identification & Mitigation Risks Identified: • Scheduling Conflicts • Requirements Creep • Group Member Dropping & MIA (Actually Happened) Lessons Learnt: • Uphill climb • Hard to mitigate risk even upon planning System Design System Analysis • The system was broken down into two parts: social network and logging features. • The depth of the logging features depended on how much the social network allowed. • The purpose of this project required both strong administrative powers and strict security. • The limited number of user allowed the project to simplify the main users. • The limited technical experience of the projected users left requires the product be simple. Functional Decomposition • The function decomposition is very similar to the functional requirements with a few exceptions. • The logging system required that all user activity (posts, messages, events, etc.) be stored in a track-able fashion. • The privacy requirements required all public data be removable in some way. Detailed Design Code Igniter Framework • Strictly follows MVC design pattern • Light Weight • Handles Low-Level Work • Many Useful Libraries • Wonderful Experience Modules - Controllers • • • • • • • • • • • Controllers acted as a way to section Admin the website Events • A Section could contain multiple pages Log • The sections were split due to Login differences in functionality Message News Site Survey - Admin Survey - User Upload Modules - Models • The purpose of Models is to act as a interface layer between code and the database • Allows the controller to access the database with out having to worry about how data is stored • • • • • • • • Admin Calendar Conversation Conversation User Gallery Log Message Newsfeed • • • • • • • • Post Site Site Info Survey Field Survey Field Response Survey Survey User User Modules - Views • Views contain the actual html and display information • This allows the controller to display data with out worrying on how the data is displayed • Project contains many view files • Among the more exceptional are: • Header/Footer • Sidebar • Site • Log • Calendar • Event Prototype Landing Page / Wall Page Calendar Page Survey Creation Login Page Testing Procedures • Manual Testing o Write code o Upload code o Open website o Check output to screen o Check log files o Check database o Fail? Repeat process Test Results & Evaluations • Manual Testing o Web Browsers -> ✔ o Session -> ✔ o Input -> ✔ • Automated Testing o Selenium -> X Field Testing & Client Feedback What the client likes: 1. Page Design & Layout 2. Simplicity Approach 3. Functionality Platform & Technologies • • • • • • PHP MySQL HTML CSS JS JQuery Project Closure Conclusions & Lessons Learned Conclusions • CodeIgniter is a very powerful framework • Creating a Facebook like page is enjoyable Lessons Learnt • Risk and mitigation plan is very important • Time management is crucial • Project management is never easy Future Work • • • • • Automated testing New requirements by client Satisfy remaining requirements Complete remaining features Multiple iterations of product to obtain more client feedback • Test website with Beta testers Q&A