UBC Undergraduate Research

Irving K. Barber Learning Centre Active Workstation Belanger, Leo; Bhide, Sanika; Evangelista, Jan Louis; Hollingworth, Max; Tuli, Mahir 2018-05-15

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Notice for Google Chrome users:
If you are having trouble viewing or searching the PDF with Google Chrome, please download it here instead.

Item Metadata


18861-Belanger_L_et_al_EECE_4XX_IKBLC_Active_Report.pdf [ 1.3MB ]
JSON: 18861-1.0373881.json
JSON-LD: 18861-1.0373881-ld.json
RDF/XML (Pretty): 18861-1.0373881-rdf.xml
RDF/JSON: 18861-1.0373881-rdf.json
Turtle: 18861-1.0373881-turtle.txt
N-Triples: 18861-1.0373881-rdf-ntriples.txt
Original Record: 18861-1.0373881-source.json
Full Text

Full Text

UBC Social Ecological Economic Development Studies (SEEDS) Sustainability Program  Student Research Report            Irving K. Barber Learning Centre Active Workstation Leo Belanger, Sanika Bhide, Jan Louis Evangelista, Max Hollingworth, Mahir Tuli  University of British Columbia EECE 400/409/419/429/439/469 Themes: Wellbeing, Energy, Health May 15, 2018       Disclaimer: “UBC SEEDS Sustainability Program provides students with the opportunity to share the findings of their studies, as well as their opinions, conclusions and recommendations with the UBC community. The reader should bear in mind that this is a student research project/report and is not an official document of UBC. Furthermore, readers should bear in mind that these reports may not reflect the current status of activities at UBC. We urge you to contact the research persons mentioned in a report or the SEEDS Sustainability Program representative about the current status of the subject matter of a project/report”.  IKBLC Active Workstation         Design Rationale  Table of Contents  Table of Contents 1 Introduction 2 1. System Architecture 3 1.1 Subsystem Design 4 1.1.1 Sensor Subsystem Design 4 2. System Components 5 2.1 Workstation 5 2.1.1 Exercise Bike 5 2.1.2 Table/Desk 6 2.2.1 On-Site Windows-based Computer 6 2.2.2 Wahoo RPM Cadence Sensor 6 2.2.3 ANT+ USB Receiver 7 2.3 Software 7 2.3.1 Web Application 7 Authentication 7 User Interface 8 Viewing Statistics 12 Security (SSL Certificate) 13 User/Web Application Management 14 Blocking Other Users When the Bike is Occupied 14 User Ending Their Session 14 User Timeout 14 Hashing CWL Username Login 15 Blocking Invalid Input on Front-End 15 2.3.2 Servers 15 Web Server 15 2.3.3 Database 16 2.3.4 Workstation Application 18 2.3.5 Tweeter Application 18 3. References 20 4. Appendix A 22  1  IKBLC Active Workstation         Design Rationale  Introduction The Irving K Barber Learning Centre proposes the “Active Workstation” project to a group of engineering Capstone students. Team 41 is the student group selected to bring the project to fruition.  The workstation incorporates two under desk bikes along with an adjustable desk and a web-application. Students are able to study while pedaling on the under desk bike. Their usage statistics are tracked through a web application. The students log-In to the application using their CWL username to record distance travelled, current RPM (speed), calories burnt, and total time spent on the workstation. This document discusses the design elements of the completed product. All design choices are made in relation to the requirements specification document; requirement code met will be in brackets.    2  IKBLC Active Workstation         Design Rationale  1. System Architecture  The system consists of four hardware components, namely a stationary bike, sensors, and a user’s personal device. The user only interacts with two hardware components -  the bike, and a personal device.   Sensors attached to the cranks of the bike obtain usage data, such as revolutions per minute (RPM). The sensor data is sent wirelessly to a local server through means of ANT+ protocol [1]. The local server uploads this data to a online server on the Amazon Web Server (AWS) platform [2]. Necessary actions are executed on the data, such as to either save data on the database or display data on the web application. The user can access the web application through means of their personal device, which can any browser enabled device .   Figure 1 gives an illustration of the overall system architecture.    Figure 1. The high level design  3  IKBLC Active Workstation         Design Rationale  1.1 Subsystem Design  1.1.1 Sensor Subsystem Design  In order to use the sensor subsystem of the Active Workstation, the subsystem requires two consumer-grade hardware components. These components are: 1. Wahoo RPM Cadence Sensor [3] 2. ANT+ USB Stick [4]  Figure 2 gives an illustration of the how these components communicate with the local server.   Figure 2. System diagram for the software components of the project 4  IKBLC Active Workstation         Design Rationale  The Wahoo RPM Cadence sensor is attached to the cranks of the bike pedals with double sided tape. The sensor logs the RPM reading with a refresh rate of one second. The sensor data is received by an ANT+ USB adapter attached to the local server. The ANT+ USB adapter communicates with the Wahoo RPM Cadence sensor using the ANT+ wireless protocol. The ANT+ protocol is a wireless protocol designed for use with fitness and health devices, with support for a large variety of sensors, transmitters and receivers.   The software for reading the sensor data resides in the same NodeJS program that communicates with the web server using SocketIO. The NodeJS program uses two Node Package Manager (NPM) modules to read the sensor data. These are: 1. libusb NPM Module  2. ANT+ NPM Module  The two modules are installed as dependencies during setup and provide the necessary library functions needed to read the sensor data. The libusb NPM module provides the low-level USB communications functions needed to send and receive data to and from the sensor. The ant-plus module then uses the libusb library functions to initialize the ANT+ USB stick, attach the RPM Cadence sensor to the USB stick, and then read the cadence data. The sensor data is then available for use by the NodeJS program.  2. System Components 2.1 Workstation 2.1.1 Exercise Bike Functional requirement (F1) requires that the workstation promotes movement of a user’s body; to meet this requirement a commercially available stationary bike, the LifeSpanFitness Solo Under Desk Bike [5], is selected. The decision to go with a bike solution was made in regard to noise and ergonomics. The bike solution encourages movement of a user’s lower body, while not interfering with a user's ability to read or write at a desk. As a non-impact exercise, cycling equipment can be very quiet; this helps ensure the workstation is not audibly distracting to surrounding students (NF4). Furthermore, the LifeSpanFitness Solo Under Desk Bike uses magnetic eddy current resistance technology, which produces no noise.  5  IKBLC Active Workstation         Design Rationale  2.1.2 Table/Desk The Under Desk Bike is outfitted with a height adjustable table to provide a stable learning platform, satisfying functional requirement (F1). After examining the tallest wooden tables currently placed along IKBLC’s hallway, we determined they would be unusable due to them not being tall enough. The minimum height requirement from floor to the bottom of the table is 105cm. Even so, the optimal solution requires desk that would fit individuals with a wide range of heights, this can only be met using a height adjustable table. The minimum width requirement is 230cm, to ensure it can fit two bikes side by side. For these reasons a height adjustable table was ordered with the required dimensions. Non-functional requirement (NF6) states that the solution must fit with the decor of IKBLC. Decor in IKBLC is primarily wooden and metallic, with colors such as light brown and dark brown. The selected table has a simple wooden finish similar to that already in IKBLC.  2.2.1 On-Site Windows-based Computer  A computer running the Windows 10 operating system with a wired connection to the internet acts as the local server. It runs an application that reads data from the USB receiver and transmits data to the web server. The Windows 10 computer requires the minimum specifications to run Windows 10 [6]. The computer may be of a small form factor and must maintain an always on state. The computer satisfies non-functional requirement (NF2), which specifies that the system must be easily maintainable and serviceable by UBC IT; UBC IT has staff proficient in Windows 10 machines. UBC IT will be providing the computer to IKBLC, and this satisfies constraint (C2), which stipulates that the system is a cost-effective solution. 2.2.2 Wahoo RPM Cadence Sensor The active workstation uses a consumer-grade cadence sensor called the Wahoo RPM Cadence Sensor [3] for reading the RPM of the Under Desk Bike. The sensor is attached to the Under Desk Bike pedal shaft through means of double sided tape, it is then wrapped in silicone self fusing tape 1” to prevent knocks causing it to fall off and to dissuade theft. The sensor uses accelerometer technology to form accurate RPM readings. The sensor is able to communicate with other devices using either the Bluetooth wireless protocol or the ANT+ wireless protocol. For this system, the team uses the ANT+ wireless communication protocol to transfer sensor data to an ANT+ USB receiver.  This sensor will be part of the system that will satisfy the functional requirement (F2), which is to provide users the ability to track their usage of the active workstation. The sensor we chose only provides RPM readings as opposed to RPM and speed, these conversions will be performed by our own calculations using the existing on-site computer, thus reducing costs. Since the Wahoo Cadence sensor is a consumer sensor, it also satisfies the non-functional requirement NF2, which requires that any component of the active workstation be easily serviceable or replaceable by UBC IT or third party manufacturer. In the case of low battery a replacement CR2032 coin cell battery should be used, refer to [7] for further detail.  6  IKBLC Active Workstation         Design Rationale  2.2.3 ANT+ USB Receiver The active workstation uses an ANT+ USB Receiver to communicate and receive data with the Wahoo Cadence sensor. As stated in section 2.2.2 Wahoo Cadence Sensor, the sensor transmits its cadence data using the ANT+ wireless protocol or the Bluetooth wireless protocol. Due to the ANT+ wireless protocol’s ability to connect sensors with receivers using an automatic pairing process, the ANT+ wireless protocol is the communication protocol of choice for the active workstation application. The ANT+ to USB Receiver is connected to the on-site computer using a USB-A port and can be initialized and read using the Zadig WinUSB driver [8] installed on the Windows 10 computer and the NodeJS libusb library used by the workstation application.  The ANT+ to USB Receiver is an integral part of the functional requirement (F2), which will provide users with the ability to track their usage of the active workstation. Given that the ANT+ to USB Receiver is a consumer grade, stand-alone device, it also satisfies the non-functional requirement (NF2), which requires that any component of the active workstation be easily serviceable or replaceable by UBC IT or Library IT staff. Also, the cost-effectiveness budget constraint (C2) is met since the ANT+ to USB receiver is only $15.  2.3 Software 2.3.1 Web Application  The active workstation uses a web application as its primary user interface. This design choice satisfies the functional requirement (F2) which requires a user interface to track usage statistics. The web application is run on a user’s personal device and can be used to login to the workation and view statistics. The web application idea was chosen because it eliminates the need for a standalone device, such as an iPad at the workstation. This design choice decreases the cost of the project and eliminates the theft risk, which satisfies (NF3); components of the active workstation need to be secure. Furthermore, the web application allows users to access their usage statistics from anywhere, which greatly enhances the user experience, and satisfies (NF8). Authentication  User authentication is required for the web application in order to store data for each unique user. The authentication process consists of a user entering their CWL username, and selecting a bike to use. When a user logs in for the first time, a new row is added to the “stats” table in the MySQL database, and the user is directed to the dashboard page. Authentication does not require a password to login and there are a number of reasons why this design decision was made. The client expressed that in order to keep consistent with other UBC applications, they would like CWL to be used as the authentication process for the active workstation. After meeting with UBC IT, they felt that implementing the CWL authentication system would be 7  IKBLC Active Workstation         Design Rationale  unnecessary for our project, as no personal information is stored in our database (C3,C4). On top of this, the web application is intended to be a simplistic addition to the active workstation. Both our client as well as our group did not want to dissuade users from utilizing the web application by adding unnecessary authentication requirements. By not implementing password protection, there is no need for users to spend time creating an account or going through a login process to begin a session. With this design, the user simply enters their CWL username, and selects a bike to use. This design still allows our client to categorize the user base of the application (F3). The client has programs that can query through CWL usernames to gather names, faculties, year of study, etc. Lastly, no authentication is used for a guest user, however, any data recorded during their session is still recorded and added to the cumulative stats of the bike that was utilized. In this way, the client will be able to monitor the complete use of each bike, and any user that is interested in recording their personal stats can choose to do so. User Interface The user interface of the web application is viewed through a user’s personal device.  The user interface was modelled off of the UBC CLF (Common Look and Feel) in order to stay consistent with other UBC applications as well as the IKBLC website. The UBC CLF is implemented in all UBC web applications and provides outlines/templates to adhere to.  Once the user opens the web application, he/she is prompted to enter their CWL username. Figure 3 illustrates the home screen where a user enters their CWL username and choses a bike to work on.   When the user successfully logs In they are shown the “dashboard screen” (Figure 6). This displays current usage statistics such as speed, RPM, distance, and estimated calories. The user can now pedal and view live data. When the user is ready to end the session, the “end session” button should be clicked.   The workstation also has a cumulative statistics screen, shown in Figure 7, which contains 3 graphs detailing the cumulative usage data of the active workstation.   The user also has the option to view their own statistics, they can do this by entering their CWL username on the home screen and choosing “view statistics”, this opens a modal (Figure. 8). This modal queries the database and generates a table containing that users overall stats, the stats for that current month, or the stats generated during their previous session on the workstation. If the user wants to begin a session, they simply choose either Bike 1 or Bike 2 (provided nobody is currently using them). The web application also has an “about screen” to view details about the project, shown on Figure 5 in Appendix A.   8  IKBLC Active Workstation         Design Rationale   Figure 3 - Home Page          9  IKBLC Active Workstation         Design Rationale   Figure 6 - Dashboard Screen   10  IKBLC Active Workstation         Design Rationale   Figure 7 - Statistics Page 11  IKBLC Active Workstation         Design Rationale Viewing Statistics Viewing statistics on the web application has been broken down into two parts - statistics for individual users and statistics for the overall workstation usage. The main function on the web application is to display the current sessions data to the user(s) of the workstation. Such data includes the RPM and speed the user is travelling at, the duration of time spent on the workstation, the distance the user has travelled and the calories burned by the user. Section above describes the authentication process that occurs when a user logs into the workstation. In order to avoid multithreading and potential race conditions we implemented two bike objects that hold the session data for users while they are logged in. Once a user ends his or her session, by either clicking the end session button or by timing out, we then write this session data to the “stats” table (described in more detail in section 2.3.3) and then all the object’s fields are reset for the next user. Storing this session data allows us to generate the data that is displayed in a modal when the “View Statistics” button is pressed. Figure 8 below shows an example of the data that is displayed.  Figure 8 - View Statistics Modal   A screenshot of the “Statistics” page (Figure 7) is shown in section above. This page serves to provide statistical information about the overall usage of the workstation that can be used in the library’s promotional efforts as well as providing some interesting graphical information to users of the workstation. For the graphs, we used Chart.js [9]. Most of our web application is implemented in JavaScript so we wanted to use a library that is in the same language. Additionally it provides fantastic customization, animation and responsiveness. Since 12  IKBLC Active Workstation         Design Rationale  we expect users to be visiting the web application on both laptop/desktop and mobile devices this was important.   We have implemented three graphs that nicely illustrate how much the workstation is being used. The first is a monthly breakdown of how for each bike has gone in January, February, March etc respectively. This allows the library to see if one bike is being used more than the other and see trends in how much the workstation is being used throughout the year. The second graph depicts the total distance of the workstation to date. By displaying this information the library can monitor the overall usage of the workstation and see how far users have pedalled to date which could be very useful in promotional messages. Finally, the third graph is a pie chart that breaks down how long people spend working at the workstation. With this the library can have an idea of how long people stay at the workstation and determine if the study sessions are short and frequent and therefore has many users in a single day, or if they are generally longer and more drawn out and have less daily users. Additionally, by summing the 4 segments of the pie chart the library can obtain a relatively accurate estimate of how many times the workstation has been used. There is always potential that people will use the workstation without logging in, but this will provide a good estimate.   However, implementing this created some challenges as the data for all the charts are stored in the chart objects themselves. Thus, if the server crashed or had to be restarted then all of the data we collected would be lost. To combat this, we created a second table called “saved_data” which is described in more detail in section 2.3.3 below. Whenever we detect we are in a new month we take the monthly totals from the “stats” table and write it to the appropriate month column in “saved_data” for each bike. If we detect that the year has changed, then we create two new entries in the table, one for each bike, and repeat the process. When users end their sessions we take their session time and update the time columns in the table. Storing the information in a different table like this and populating the graph data from this new table allows our statistical information to be more robust by removing the possibility of the data being lost. It also provides monthly breakdowns of usage information for each year that the workstation is installed. Security (SSL Certificate)  A Secure Sockets Layer (SSL) Certificate [10] has been installed on the Amazon Web Services (AWS) server to add a layer of security to the web application. An SSL Certificate allows the server to initiate a secure session with browsers and all data sent between the two entities is encrypted. Having an SSL Certificate allows the padlock and HTTPS to be displayed in the address bar of browsers which will give users of the workstation confidence that their information is secure. The SSL Certificate was obtained from Let’s Encrypt which is a Certificate Authority (CA) offering free SSL Certificates that last for 90 days [11]. The certificate was installed through the Certbot ACME client [12] which also allows for automatic renewal of the SSL Certificate to ensure that it does not expire and therefore will always be secure. Installation of the certificate is dependant of the software being used and which operating system the server 13  IKBLC Active Workstation         Design Rationale  is running. Our project uses Nginx and Ubuntu 16.04. Links for both Let’s Encrypt and Certbot can be found in the list of references. There are many options when it comes to choosing a Certificate Authority and therefore an SSL Certificate. Many however, are paid and so by choosing free options like Let’s Encrypt and installing the SSL Certificate ourselves we were able to save some money. User/Web Application Management While implementing the active workstation’s web application, many use cases had to be considered in order to ensure that the application performs all of its necessary functions without encountering issues. Such issues included making sure that only one user can log into a bike at a time, ensuring that the database is updated whether the user correctly ends their session or not, and ensuring the application is secure and unbreakable. Blocking Other Users When the Bike is Occupied  Because the active workstation tracks data for each user, it was important to ensure that only one user could log into a bike at a time, and to keep track of which user was currently logged in. This function was implemented by adding a global variable to keep track of which user is currently logged in. By default, the variable is set to a constant value of -2. When a user attempts to login, their CWL username is hashed into an integer value, and compared to this global variable. As long as the variable is -2, it allows the user to login. After they are logged in, this global variable takes their hashed CWL value, and locks out any other user from logging in. If another user attempts to login, the application will check and see that the global variable is not its default value of -2, and deny access. Once the currently logged in user ends their session or a timeout occurs, the global variable will be set back to -2 which allows another user access to the bike. User Ending Their Session As the main purpose of the web application is to store user data for each session on the active workstation, an “End Session” button was added to the dashboard which logs the user out and updates their stats in the database. The button makes use of sockets to acknowledge that the session has ended, and to trigger functions to update both their personal stats in the database, as well as the stats of the bike used during their session. After the button is triggered, the global variable keeping track of the current user is reset to its default value of -2, which allows other users to login. User Timeout In order to ensure that the web application is unbreakable and functions correctly for all of its use cases, a timeout function was implemented. Such use cases include a user navigating away from the application without pressing the “End Session” button, or a user logging into a workstation while not being present on the bike (blocking other users from logging in). The timeout works by initiating a timer of value 0 upon user login. As the user pedals, the sensor will read rpm values greater than 0 which in turn continuously resets the timer back to 0. As soon as 14  IKBLC Active Workstation         Design Rationale  the user stops pedalling (rpm goes to 0), the timer will increment. If the timer reaches a time of 5 minutes without reading an rpm greater than 0, then the timeout will occur, causing the user to logout. This ensures that the user who is at the workstation has control over logging into the web application. It also ensures that all of the data generated by the workstation is correctly entered into the database, whether it be by a user pressing the end session button, or by a timeout occurring. One downside of this design is that if a user leaves the workstation without pressing the “End Session” button, and a new user attempts to login within 5 minutes, they will be unable to. The user will be prompted to not pedal for up to 5 minutes so that the timeout can occur. Overall, this simple timeout solution solves many of the problems encountered from our use cases without having to introduce more hardware, or two-factor authentication both of which were not wanted by our client. Hashing CWL Username Login As the authentication process for our web application directly queries our MySQL database, it was very important to ensure that the inputs are hashed before any backend functionality is performed to avoid malicious activities such as SQL injections. As our front-end ensures valid CWL inputs are entered, there is not a large risk of SQL injections, however, hashing the CWL username allows for unique integer identifiers of which can be used on the backend of the web application. Originally, the application used student numbers as authentication, however, our client decided to change to CWL username after we had already wrote most of our backend using integer comparisons with student numbers. Being able to generate unique integers from a CWL username ensured that we could keep almost all of our backend as it was, and simply use the hashed CWL instead of student number. Blocking Invalid Input on Front-End  In order to ensure that only valid CWL usernames are entered into our database, our front-end is set up to block any input which doesn’t adhere to the CWL username requirements. Such requirements include blocking invalid characters and numbers, ensuring that all of the characters are undercase, and ensuring the entry is between 2-8 characters long.  2.3.2 Servers Web Server The Active Workstation web application and database resides in an Amazon Web Services EC2 Cloud Server hosted in Montreal, Canada. The AWS EC2 Instance runs on Ubuntu 16.04LTS with the following programs installed: ● Node Package Manager ● NodeJS ● Process Manager 2 ● Nginx Web Servers ● MySQL ● Git 15  IKBLC Active Workstation         Design Rationale  This is the minimum environment needed to run the web server, with the rest of the libraries being installed when the active workstation repository is downloaded onto the server and the dependencies installed. Access to the EC2 server is tightly controlled and security certificates for user access must be created by the server administrator before other users can log in. Users and administrators access the server by SSH, creating a secure connection between the server in Montreal, QC and the user’s computer anywhere in the world.  The Amazon Web Services EC2 server is an integral part of the functional requirement F2, as it hosts and runs the interface needed by users to track their workstation usage. Since the EC2 server is hosted by Amazon Web Services, it satisfies the requirement for reliability specified by non-functional requirements NF13 and the security provided by Amazon Web Services satisfies the requirement specified by NF12. Since the EC2 server is hosted in Montreal, QC, it satisfies the constraint C3, which stipulates that user data must reside in Canadian servers.  2.3.3 Database A MySQL database is being utilized to store user data and to store authentication information. MySQL was chosen as a database framework because it is a well known relational database structure that allows us to store data in rows of a table, rather than in documents. Originally, we had chosen to adhere to the MEAN software stack which included mongoDB as a database. This decision was later changed after determining which user statistics would be managed, and realizing that a relational database would offer a better structure for storing that data.   The database contains two MySQL tables that store data for the active workstation. The first is called “stats” and the description of the table is shown in Figure 9 below. It stores the statistics for each user, as well as each of the bikes. Additionally it stores authentication information so that data can be linked to each user. Data stored in this table is also used to generate the “View Statistics” modal on the front page of the web application, as well as to generate graphs on the “Statistics” page of the web application. The CWL username is hashed and stored in the “StudentID” column for use on the backend of the server. At the end of each month, the MonthCalories, MonthDistance, and MonthTime columns are reset back to 0, however, the MonthDistance for each bike is first sent to the second table for long term storage. 16  IKBLC Active Workstation         Design Rationale  Figure 9 - stats table in the MySQL database  The second MySQL table, called “saved_data,” is used to store the total distance travelled by each bike per month, as well as categorize the use times of each session. A detailed description of the table is shown below in Figure 10. Data stored in this table is used to generate graphs on the web application within the statistics page. At the start of each year, two rows are added to the table for both of the bikes. After each month, the total monthly distance travelled by each bike is retrieved from the “stats” table, and inserted into its corresponding month column within this second table. After this copy is made, the monthly data is reset to 0 within the “stats” table. Figure 10 - saved_data table in the MySQL database   17  IKBLC Active Workstation         Design Rationale  2.3.4 Workstation Application The active workstation uses a NodeJS application running on the Windows 10 workstation computer is used to interface with the ANT+ to USB Receiver in order to read cadence data from the Wahoo Cadence sensor, which the application then transmits to the AWS EC2 server via the Internet. The NodeJS application runs automatically on startup of the Windows 10 machine, allowing for continuous operation of the sensor reading process.   The workstation application is a key component of the functional requirement F2, since it reads the cadence sensor data required by users to track their workstation usage. Since the workstation application is programmed in NodeJS, a common development language, it satisfies the non-functional requirement NF2, which allows for easy migration of future development to the Library IT team. Since the computer is configured to automatically run the workstation application on computer startup, the non-functional requirement NF13 is also satisfied.  2.3.5 Tweeter Application The active workstation uses a simple NodeJS application running on the EC2 server to automatically create tweets regarding overall active workstation usage statistics on a defined interval. The application can query the database for overall usage of the workstation and the statistic to tweet is then sent out randomly. The tweets are then posted on the Twitter account @UBCTeam41 in order to engage the UBC community. As well, the Tweeter application can also send out promotional tweets in order to promote usage of the active workstation and increase awareness of the effects of sedentary behaviour. A screenshot of the results of the Tweeter application is shown below.  The Tweeter application satisfies the non-functional requirement NF7, in that it engages the community via the Twitter social media platform.   18  IKBLC Active Workstation         Design Rationale   Fig 11 - UBC Active Workstation Twitter Page             19  IKBLC Active Workstation         Design Rationale  3. References [1]"ANT+ Basics - THIS IS ANT", Thisisant.com, 2018. [Online]. Available: https://www.thisisant.com/developer/ant-plus/ant-plus-basics. [Accessed: 04- Apr- 2018].  [2]"AWS Documentation", Amazon Web Services, Inc., 2018. [Online]. Available: https://aws.amazon.com/documentation/. [Accessed: 04- Apr- 2018].  [3]"WAHOO RPM CADENCE SENSOR", Wahoo Fitness, 2018. [Online]. Available: https://eu.wahoofitness.com/devices/bike-sensors/wahoo-rpm-cadence-sensor. [Accessed: 04- Apr- 2018].  [4]"USB Ant Stick Quick Reference Guide", Garmin, 2010. [Online]. Available: http://static.garmin.com/pumac/USBAntStick_QuickReferenceGuide.pdf. [Accessed: 05- Mar- 2018].  [5]"Under Desk Peddler | Pedal Exerciser", lifespanfitness, 2018. [Online]. Available: https://www.lifespanfitness.com/canada/workplace/bike-desks/under-desk-peddler. [Accessed: 05- Apr- 2018].  [6]"Windows 10 System Requirements Specifications | Microsoft", Microsoft.com, 2018. [Online]. Available: https://www.microsoft.com/en-ca/windows/windows-10-specifications#system-specifications. [Accessed: 05- Apr- 2018].  [7]"How to Replace the RPM Cadence Battery", Wahoo Fitness Support, 2018. [Online]. Available: https://support.wahoofitness.com/hc/en-us/articles/115000336784-How-to-Replace-the-RPM-Cadence-Battery. [Accessed: 05- Apr- 2018].  [8]"Zadig - USB driver installation made easy", Zadig.akeo.ie, 2018. [Online]. Available: http://zadig.akeo.ie/. [Accessed: 05- Apr- 2018].  [9]"Chart.js | Open source HTML5 Charts for your website", Chartjs.org, 2018. [Online]. Available: http://www.chartjs.org/. [Accessed: 04- Apr- 2018].  [10]D. Abraham, "What is an SSL Certificate?", Globalsign.com, 2018. [Online]. Available: https://www.globalsign.com/en/ssl-information-center/what-is-an-ssl-certificate/. [Accessed: 05- Apr- 2018].   20  IKBLC Active Workstation         Design Rationale  [11]"Getting Started - Let's Encrypt - Free SSL/TLS Certificates", Letsencrypt.org, 2018. [Online]. Available: https://letsencrypt.org/getting-started/. [Accessed: 04- Apr- 2018].  [12]"Certbot", Certbot.eff.org, 2018. [Online]. Available: https://certbot.eff.org/#ubuntuxenial-nginx. [Accessed: 05- Apr- 2018].                                      21  IKBLC Active Workstation         Design Rationale  4. Appendix A    Figure 4 - How to Use Tab    Figure 5 - About Screen 22 


Citation Scheme:


Citations by CSL (citeproc-js)

Usage Statistics



Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            async >
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:


Related Items