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 Admin Events Log Login Message News Site Survey - Admin Survey - User Upload Controllers acted as a way to section the website A Section could contain multiple pages The sections were split due to differences in functionality
Modules - Models Admin Calendar Conversation Conversation User Gallery Log Message Newsfeed Post Site Site Info Survey Field Survey Field Response Survey Survey User User 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
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