360 likes | 491 Views
Cranberry Scheduler. Web Dynamics. Who Is Involved. The team Aaron Papp De'Liyuon Hamb Shawn LeMaster The clients Dr . Bouvier Students and teachers that use the HCI lab. Our Process. Agile development Evolving requirements Short development cycles User roles UI designer
E N D
Cranberry Scheduler Web Dynamics
Who Is Involved • The team • Aaron Papp • De'LiyuonHamb • Shawn LeMaster • The clients • Dr. Bouvier • Students and teachers that use the HCI lab
Our Process • Agile development • Evolving requirements • Short development cycles • User roles • UI designer • Main developer • Database Manager • Weekly stand-up meetings • Discuss requirements and progress • Assign tasks
The Problem • Scheduling the Human-Computer Interaction (HCI) Lab is currently done using paper • Requires users to go to the HCI lab to check the schedule and record times • Time-consuming and annoying for users
The Goal • Simplify the process of … • Reserving the lab • Tracking meetings • Tracking volunteers • Be easily accessible from different locations • Web application approach • Intuitive
The Constituency • Researchers • Schedules meetings • Volunteers • Signs up for meetings • Teachers • Tracks research • Meetings • Volunteer participation
Researchers • Scheduling • Rehearsals • Volunteer interviews • Different research locations • Remote scheduling • Email reminders • Volunteers come to you
Volunteers • Remote sign-up • Email reminders • Choose projects that interest them
Teachers • Aggregate data • Tracking volunteer points • Group management • Location management
Usability Testing • 7 tasks • As a researcher • Create appointment • Edit appointment • View all appointments • Change settings • View meeting details • As a volunteer • Register as a volunteer • Confirm your participation in a project
Feedback • 3 tests for feedback • Largely positive overall • All tasks were successfully completed • Minor hiccups at a couple spots
Feedback • “Selecting a date on the calendar requires clicking the tiny number. Clicking anywhere should work also.” After Before
Feedback • “Task #3 confused me for a second, had to fumble with the page to find it. […] But after I seen where it was, it made sense.” • Task 3: View all of your appointments
Feedback • “Clicked wrong place to find the interview information.” • Task 4: “Find the detailed view for this meeting.”
Overall • “No complaints.” • “Enjoyed the layout/color scheme” • “It was simple for me to use.”
Development Goals • Focus on cross browser compatibility • Standards compliant code • HTML5, JavaScript event driven • No 3rd party plugins • Working around Internet Explorer’s problems • No legacy support • Hardware compatibility • Develop for smallest common resolution
Development Principles • Using pre-built components • Smarty Template Engine, jQuery, ... • Reduced development time • Increased usable features • Separation of components • Technically possible to be one large file • Bad practice and hard to work with • Markup, CSS, and JavaScript on the front-end • Database, PHP, and templates on the back-end
Developing Towards Templates • UI development geared towards templates • Simplifies changing the UI • Change one template instead of separate files • Helped after requirements changed 2nd semester • Separates content from markup • Better markup readability • 3 primary templates • Header, body, footer • Sub-templates for page specific markup
Object-Oriented PHP • PHP is a procedural language • Object-orientation tacked on • Chose OO PHP for development • Easier to make changes • Easier to support • Separation of components • Not handling everything in one file
Wrapper Classes • Created classes to black box data handlers • GET, POST, SESSION, SERVER • Can make changes to the handler class • To handle magic quotes for example • Abundant use of singletons • Prevent duplication of resources • Database connections • LDAP connections
Security • PHP Data Objects and prepared statements • Smarty Template Engine • No dynamic includes • Variable filtering • Tokens on POST forms • Secure session handling • Inactivity timeouts • Authentication checks • Internally restricted redirects
Database • MySQL • Free and open source • Well supported by web hosts • Engine • InnoDB
Integration • End product based on hi-fi prototypes • AJAX • Pull calendar events in the background • Data validation • Form pre-filling