360 likes | 511 Views
The project aims to revolutionize the scheduling process of the Human-Computer Interaction (HCI) Lab, currently managed through a cumbersome paper-based system. By introducing an intuitive web application, we simplify lab reservations, streamline volunteer tracking, and facilitate meeting management, all accessible remotely. The development employs agile methodologies with short cycles and user feedback to ensure the product meets user needs. Key stakeholders include researchers, teachers, and volunteers. Our goal is to create a user-friendly experience that enhances participation and efficiency.
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