Virginia Tech Blacksburg, VA 24061 CS 4624 – Multimedia, Hypertext, and Information Access Spring 2020 Final Report CS Information Session Reservation Group: Barbara O’Connor, Nicole Moore, Michael Hoff, Quentin Simoneaux Clients: Ruth Labbe Hale and Debbie Zier Professor: Dr. Edward A. Fox Table of Contents Table of Contents………………………………………………………………………………………..2 Table of Figures…………………………………………………………………………………………………….3 Executive Summary / Abstract……………………………………………………………………….. 5 Introduction…………………………………………………………………………………………….... 6 Requirements……………………………………………………………………………………………. 7 Consolidating information………………………………………………………………………. 7 Ease of use………………………………………………………………………………………. 7 Automation and notifications………………………………………………………………….... 7 Integration………………………………………………………………………………………... 7 Design…………………………………………………………………………………………………….. 8 Implementation………………………………………………………………………………………... 12 Testing / Evaluation / Assessment…………………………………………………………………. 17 Users’ Manual………………………………………………………………………………………….. 18 Developer’s Manual…………………………………………………………………………………... 21 Lessons Learned…………………………………………………………………………………….... 36 Timeline/Schedule………………………………………………………………………………….. 36 Problems…………………………………………………………………………………………….. 36 Solutions…………………………………………………………………………………………….. 37 Future Work…………………………………………………………………………………………. 38 Acknowledgements…………………………………………………………………………………... 39 References……………………………………………………………………………………………... 39 Table of Figures Figure 1. System Diagram……………………………………………………………………………..8 Figure 2. Sign Up Form………………………………………………………………………………...9 Figure 3. Confirmation Email - Family……………………………………………………………..10 Figure 4. Confirmation Email - CS Staff/Client...…………………………………………………10 Figure 5. Google Sheet with Form Responses…………………………………………………...11 Figure 6. Google Calendar Event…………………………………………………………………...11 Figure 7. Reminder Email…………………………………………………………………………….12 Figure 8. No Ambassador Email…………………………………………………………………….12 Figure 9. Standard Google Form…………………………………………………………………....13 Figure 10. Main HTML
Element...………………………………………………………….13 Figure 11. “Name” Attributes………………………….…………………………………………….14 Figure 12. Full Custom Google Form……………………………………………………………....14 Figure 13. Google Apps Script……………………………………………….…………………......15 Figure 14. Google Sheet Database…...…………………………………………………………….19 Figure 15. Control-F Searching...…………………………………………………………………...20 Figure 16. Column Sorting…………………………………………………………………………...20 Figure 17. Column Sorting 2……...………………………………………………………………....21 Figure 18. Column Sorting 3………...……………………………………………………………....21 Figure 19. System Users and Goals..……………………………………………………………....22 Figure 20. Session Attendee Sign Up Goal.……………………………………………………....22 Figure 21. Session Attendee Check Email Goal………………………………………………....22 Figure 22. CS Admin Review Calendar Goal..…………………………………………………....23 Figure 23. CS Admin Check Email Goal…..……………………………………………………....23 Figure 24. Column Sorting 3………...……………………………………………………………....23 Figure 25. CS Ambassadors Sign Up Goal….…………………………………………………....24 Figure 26. Session Attendee Sign Up Service…………………………………………………....24 Figure 27. Session Attendee Reminder Email Service………………………………………....24 Figure 28. CS Admin Calendar Service....………………………………………………………....25 Figure 29. CS Admin Reminder Email Service...………………………………………………....25 Figure 30. CS Admin Review Attendees Service...……………………………………………....25 Figure 31. CS Ambassador Sign Up Service..…………………………………………………....26 Figure 32. Session Attendee Workflow Diagram...……………………………………………....26 Figure 33. CS Admin Workflow Diagram.………………………………………………………....27 Figure 34. CS Ambassador Workflow Diagram..………………………………………………....27 Figure 35. New Sign Up Code…..…...……………………………………………………………....28 Figure 36. Reminder Email Code.......……………………………………………………………....30 Figure 37. Reminder Email HTML......……………………………………………………………....30 Figure 38. Confirmation Email Code.……………………………………………………………....31 Figure 39. Confirmation Email (Student) HTML….……………………………………………....31 Figure 40. Confirmation Email (Admin) HTML…………………………………………………....32 Figure 41. New Sign Up Trigger….....……………………………………………………………....33 Figure 42. Check Ambassador Trigger.…………………………………………………………....34 Figure 43. Reminder Guests Trigger.……………………………………………………………....35 Executive Summary / Abstract The CS Information Session Reservation project is an effort to assist recruiting processes for the Computer Science department at Virginia Tech. The department has an ambassador program that is responsible for hosting information sessions for prospective students and their families when they visit campus. The main goals of this project are to provide individuals with a means of signing up for information sessions online, and to automate behind the scenes processing for the ambassador program. Our clients for this project are the leads of the ambassador program for the CS department, Ruth Labbe Hale and Debbie Zier. After meeting with them multiple times, we came up with a list of requirements and proposed deliverables for the project design. Our clients emphasized the desire to have the manual steps they complete on a day to day basis automated. Their current process heavily utilizes common Google Suite applications such as Gmail, Google Sheets and Google Calendar. As they don’t have a technical background, we incorporated these Google Suite applications into our design to facilitate the transition to our new, proposed system. The proposed design that our clients would like put in place at the end of the semester includes the following pieces: an online form for prospective students and their families to use to sign up for information sessions, a shared online calendar for student ambassadors and our clients to see upcoming events, a spreadsheet containing relevant information for our clients, and various reminder emails for those signed up for events. Our design utilizes Google Suite applications as well as HTML, CSS, and JavaScript to achieve the aforementioned goals. Upon user submission of the signup form, customized confirmation emails are sent to both the user and our clients reminding them of the upcoming information session. The collected form response is used to automatically populate a spreadsheet with information about the attendee, so our clients can utilize the data if needed. The spreadsheet automatically updates the shared Admin Google Calendar for the selected information session, which is then used by student ambassadors to sign up for these events. Our project is currently being hosted on a team member’s GitHub, but will be integrated into the CS department’s website once the development and testing stages are completed. After we have accomplished the base requirements for the project, we have plans to work on additional features that we think may be of use to our clients. Introduction Now, more than ever, there has been a push for students to pursue both bachelor’s and master’s degrees in the STEM industry. Computer Science is one of the most lucrative fields to go into, and Virginia Tech’s College of Engineering is working to get more students interested in its Department of Computer Science. According to VT’s College of Engineering website the Department of Computer Science is “ranked No 13 for its undergraduate program, moving the college upward in this national ranking against peers and aspirational peers… The department enrolls over 900 undergraduate majors and over 250 graduate students. During academic year 2018-19, we awarded 300 BS degrees, 52 MS degrees and 21 PhDs.” [1] While this may seem like an impressive feat, it’s only the beginning for the legacy that the Computer Science department is trying to establish. Virginia Tech recently announced plans for a new Innovation Campus in the Northern Virginia area, which will be the hub for graduate students interested in technical degrees. According to an article on the Virginia Business website, “The state is investing nearly $1 billion in technology education, and Virginia Tech will be the largest recipient — along with bearing responsibility for producing more than 16,000 computer science degree-holders over the next two decades.” [2] The future growth of the Computer Science department directly depends on the events led by its ambassador program. The improvements proposed by our team’s project could greatly impact the program, making it easier to host these information sessions, and in turn resulting in a greater number of students attending the university to study Computer Science. Other departments at Virginia Tech already have online signup processes in place for their information sessions, but they’re not as helpful as they could be. For example, the ECE department’s online form for signing up for information sessions doesn’t utilize a calendar component. [3] This was one of the main asks from our clients, who would like us to provide users with a sharp looking, easy to use experience. We also included questions on the form that will provide the ambassador program with more personal information about the attendees, in hopes that they can provide them with a more personalized experience during their information sessions. Our focus is on creating a seamless experience for all the intended users of our system. Signing up to attend information sessions should be easy for prospective students and their families, and equally as easy for student ambassadors interested in signing up to host them. Utilizing Google Suite applications allowed us to automate the entire process from start to finish, so that our clients will no longer need to manually do it. How we accomplished these tasks, how developers and users can utilize our system, and problems we faced along the way are some of the many things that will be discussed throughout the remainder of this report. Requirements As previously mentioned, the base requirements for this project to be deemed successful were agreed upon after meeting with our client multiple times. We all agreed that the main requirements included consolidating attendee/ambassador information, increasing ease of use of the system, automating the process with necessary notifications, and integrating the final product online. In these meetings we also discussed potential stretch goals that our team thought of, but these will be addressed in a later section of the report. Consolidating information Our clients expressed their interest in having all of the information recorded from our Google Form submissions on a continually updated spreadsheet. To achieve this we connected our form to a Google Sheets spreadsheet, which includes all of the information about the prospective students and their families attending an information session. Ease of use All of the intended users of our proposed system currently have a difficult time signing up for and hosting information sessions. The clients requested that our design be simple and straightforward, so that it will be easy as to how to complete tasks such as filling out forms and signing up for calendar events. Another factor affecting ease of use is the automation goal for the project, which will be discussed in more detail next. Automation and notifications While the design must be clean and simple, the biggest goal for this project is to automate the entire end to end process for our clients. Having to manually control sign ups is cumbersome and wastes time, so they requested that our system automatically do repetitive tasks for them. All of the tools used in our design are connected so that submissions to our form sets off a chain reaction of updates. Another automation request was to have email notifications sent to the prospective students and their families on completion of the form, as well as to our clients to notify them that a new family is attending an event. Integration The last requirement is to have our fleshed-out design fully implemented and tested, and integrated into the CS Department’s website upon completion of the other requirements. Our clients were very adamant about using this system right away and would like it prominently displayed on the home page of their website. Design The client had general expectations of how this project would be designed. So as to use familiar applications for the client and the potential users, we chose to utilize Google Suite tools such as Google Forms, Google Calendar, and Google Sheets as the main applications with which the user and the client would interact. The client expected a simple and clean design that would be easy for users with no technical experience to navigate and use. Figure 1. System Diagram Figure 1 shows how the client and expected users will interact with the system. Our design will automate the process of prospective families signing up for information sessions, in turn making it easier for the CS Ambassador lead as well as CS Administrators to coordinate scheduling processes. The general flow is described below. Figure 2. Sign Up Form Prospective families use a custom form to signup for a CS Information Session; see Figure 2. Google Forms layout is used to provide familiarity for the user. The form is designed to follow with Virginia Tech colors and styles to smooth future integration into the CS @ VT website. The form includes a calendar view for the user to choose a date in which their information session will take place. The dates that are unavailable for an information session are disabled. This allows for easier and more convenient usage, and minimizes errors and accidental signups for the client. The form includes added questions such as where the student is from, what their grade level is, and if there are any additional questions for the CS Ambassador. This helps make the CS Ambassadors better prepared for the information session. The form process automatically sends out a confirmation email (see Figure 3) to the prospective family that has just signed up for an information session. A simple design of the email is used so that it is to the point, and informative for the user. A separate confirmation email is also sent out to the CS Administrators who run the CS Ambassador program so they are aware that a new family has signed up for an information session. Figure 3. Confirmation Email - Family Figure 4. Confirmation Email - CS Staff/Client The information from the form is populated into a shared Google Sheet (see Figure 5) that is accessible to the client as well as the CS Ambassadors. The client requested a way to have all information about the potential families organized in a single spot. This sheet is a way for the clients to consolidate all information that has been entered into the form. The sheet provides a column for each question from the form. Each submission of the form is recorded. This provides further automation of the previous process of the client sorting through emails to collect information about Information Sessions. Figure 5. Google Sheet with Form Responses Each time a user submits the custom form, a Google Calendar event (see Figure 6) is created and updated based on the information provided by the user. Google Calendar is used to keep with the same applications that the client is familiar with. This calendar is accessible to the client as well as the CS Ambassadors. The families are added as a guest to the event. Previously the family name and email were written manually in the notes section of the event. This design provides automation so that the event is automatically updated with the correct time, date, and guests. CS Ambassadors can see these events and “sign up” as the Ambassador for the information session. The event is created with the color set to red. Once an ambassador signs up for an information session the color should be changed to green to mark that no more staff is needed for that event. This provides an accurate representation of the state of the application to make things clear for the client and the CS Ambassadors. Figure 6. Google Calendar event Each guest signed up for each information session event is sent a reminder email about the upcoming session 24 hours before the event. This email, shown in Figure 7, provides relevant information about the upcoming session. This allows for a smoother process for the client to ensure that those signed up for the event will be fully aware of all of the details for the information session. Figure 7. Reminder Email Figure 8. No Ambassador Email The client requested that they be notified if there is not a CS Ambassador signed up for the information session on any given day. So, an automated email, seen in Figure 8, will be sent to the admin email each day, notifying the client if there is no ambassador signed up on the calendar event. This email will only be auto-sent if there is no ambassador for the information session on that day. This email has the subject “IMPORTANT: Need ambassador for info session today” so as to draw more attention to the urgency of the email. There is minimal text in the message to maintain simplicity. Implementation Information Form The first part of our solution starts with the Information Form. This is the HTML form that can be served on a website and then sent to guests to sign up for an information session. To create this form we first created a normal Google Form with all of the essential questions (Figure 9). Figure 9. Standard Google Form You’ll notice some extra questions: Event Name, Start Time and End Time. These will be explained in the Responses Sheet section. Next, we wanted to give the form a different look and feel to customize it for our needs. The customization options offered by Google are minimal, so we decided we should create our own HTML page. Google Forms use a standard HTML element to submit data, so all we had to do was copy the endpoints for where to send the data, and we could create our own page with custom HTML and CSS styling (Figure 10). Figure 10. Main HTML element The only other requirement was to copy the “name” attributes from the questions on the Google Form. Upon submission, the backend expects the data to come from specific name attributes. Thus, the first question has a name attribute of entry.1238163387 Figure 11. “Name” Attributes With the element and the “name” attributes, we have all the required information from the Google Form, and can create our own custom form and submit to the same endpoint. The Google Form already has some good formatting, so we copied the general layout and look of the questions. We then made some minor cosmetic edits to make the design better fit with the VT CS department. This included hiding the Session Name, Start Time, and End Time questions, as they are not meant for users to change. See Figure 12. Figure 12. Full Custom Google Form Lastly, we had to remove some