Part I: Learn the Basics
Lecture 1 (2018/10/03): The Quantified Self
Tutorial
- What is Quantified Self?
Gary Wolf Ted Talk
Form 101
What do people track?
How do people track?
What are the technologies for self-tracking?
Why are people so obsessed with self-tracking?
- How to design a Quantified Self app?
Form 102
What do you want to know of yourself? –> The story
How to achieve it? –> The needs
What are your solutions/strategies? –> The solutions
How to implement the solutions/strategies? –> The features
- How do we learn web app development in this course?
Get the source code of SleepBeta on GitHub
- Frequently asked questions
- Course evaluation
- Vote for lecture time
Tasks
- Submit Form_101 and Form_102 to share folder
- Subscribe to Microsoft Imagine (EN version, JP version)
- Download & Install Microsoft Visual Studio (JP version)
- Create account on Microsoft DevOps (former Visual Studio Team Service Foundation) (JP version)
Recommended Reading
- Ian Li, Anind Dey, Jodi Forlizzi. A stage-based model of personal informatics systems. CHI 2010.
- Daniel A Epstein, An Ping, James Fogarty, et al. A lived informatics model of personal informatics. UbiComp 2015.
- Zilu Liang, Mario Chapa-Martell. Framing self-quantification for individual-level preventive health care. HEALTHINF 2015.
- Zilu Liang, Bernd Ploderer. Sleep tracking in the real world: a qualitative study into barriers for improving sleep. OzCHI 2016.
Lecture 2 (2018-10-15): Cloud Computing
Tutorial
Form 201
Carl Schmidt Ted Talk
- What is cloud computing?
What is cloud computing?
What are the three layers of cloud services?
What are the applications of cloud?
- Why do we need cloud?
What are the benefits of using cloud?
What are the downsides of using cloud?
- How does cloud work?
Check out your Azure portal
Tasks
- Complete an online survey
- If you haven’t submitted Form_101 and Form_102, submit them to share folder
- Submit Form_201 to share folder
- Set up a repository for your web development project on Microsoft DevOps
# If you have no idea how to do it, there are some slides for your reference (some parts may be obsolete; use with caution!)
Set up local repository: windows MAC
Set up remote repository: Set up DevOps
# Current DevOps allows three ways for authentication, either personal token (for windows) or SSH (for MAC) is recommended to establish secured connection between your local repository and DevOps.
# Windows users may find the Git Credential Manager a must-have extra piece of gem.
Recommended Reading
- Microsoft Azure. What is cloud computing? Retrieved 2018-10-15.
- Antonio Regalado. Who coined ‘cloud computing’? MIT Technology Review 2011.
- Zahir Tari, Xun Yi, Uthpala S. Premarathne, et al. Security and privacy in cloud computing: vision, trends, and challenges. IEEE Cloud Computing 2(2):30-38, 2015.
- Zilu Liang, Bernd Ploderer, Mario Alberto Chapa Martell, et al. A cloud-based intelligent computing system for contextual exploration on personal sleep-tracking data using association rule mining. Communications in Computer and Information Science 597, 2016.
Lecture 3 (2018/10/22): Version Control
Tutorial
- What is version control?
- Why do we need version control?
- How does version control work?
Tasks
- If you haven’t done the online survey, plz complete it.
- If you haven’t submitted Form_201, submit them to share folder
- Submit Form_301 to share folder
- Configure a pipeline in DevOps for your repository
Recommended Reading
Lecture 4 (2018/10/29): ASP.NET MVC Framework
Tutorial
- What is a web framework?
- Why do we need web frameworks?
- What is MVC architecture?
- what are the merits of MVC architecture?
Tasks
- Submit Form_401 to share folder
- Configure continuous deployment
Deploying apps to Azure seems to be a bit challenging right now due to many ongoing changes underlying the DevOps. Probably the following posts will be helpful.
Deploy a web app to Azure App Services
Key concepts for new Azure Pipelines users
Recommended Reading
- Concept of software framework. Retrieved on 2018-10-28.
- Server side web framework. Retrieved on 2018-10-28.
- How the web works. Retrieved on 2018-10-28.
Lecture 5 (2018/11/05): Database
Tutorial
- What is database?
- What are common operations on a database?
- What data need to be stored in SleepBeta database?
- What tables should SleepBeta database have?
Tasks
- Submit Form_501 to share folder
- Connect to your database in Azure using RazorSQL or Visual Studio Code
# RazorSQL is a cross-platform desktop application that provides users with the ability to query, edit, browse, and manage databases. Note that free trial only valid for 30 days.
- Create the following tables manually in your database on Azure, or follow the slides to deploy the database using Entity Framework in a tricky way (it worked last year but not sure if it will work this year given that Microsoft has significantly changed the Azure infrastructure) mac windows
AspNetRoles
AspNetUserLogins
AspNetUserRoles
AspNetUsers
DiaryDatas
FitbitDatas
UserQuestions
Recommended Reading
- Create an Azure Database for MySQL server by using the Azure portal. Retrieved on 2018-11-04.
- SQL query tutorial at Tutorialspoint. Retrieved on 2018-11-04.
- SQL query video tutorial at Khan Academy. Retrieved on 2018-11-04.
Lecture 6 (2018/11/08): API
Tutorial
- What is API?
- Why do we need API?
- How does API work?
- What data can you get from Fitbit through API?
Tasks
- Submit Form_601 to share folder
- Download and install Fitbit app on your preferred device (e.g. smartphone, laptop)
- Obtain Fitbit credential for your web app on Fitbit Developer Website
- Configure Fitbit credential in web.config
- Test and debug
Recommended Reading
- Fitbit Web API Documentation. Retrieved on 2018-11-05.
- D. Hardt, Ed. The OAuth 2.0 Authorization Framework. RFC6749, October 2012.
Lecture 7 (2018/11/12): User Interface
Tutorial
- What are the elements of a user interface?
- What do we use data visualization for?
- Can you list up some data visualization tools that you have used before?
Hans Rosling’s 200 Countries, 200 Years, 4 Minutes – The Joy of Stats – BBC Four
Tasks
- Submit Form_701 to share folder
- Add a team member in your repository on DevOps
snowballs.u-tokyo[at]outlook.com
- Complete app deployment
Completion criteria: (1) continuous deployment configured in Azure Portal, (2) database tables deployed, (3) Fitbit credential configured in web.config, and (4) app name changed.
- Work in team to create a Capstone Project Plan. You can find an example here.
Recommended Reading & Watching
- Hans Rosling (2009) Insights on HIV in stunning data visuals. TED Talk.
- Donald Norman (2014) The Design of Everyday Things. The MIT Press.
- Huihai Yang, Yunyao Li, Michelle X Zhou (2014) Understand users’ comprehension and preferences for composing information visualizations. ACM Transactions on Computer-Human Interaction 21(1): Article 6.
- Eun Kyoung Choe, Bongshin Lee, mc schraefel (2015) Characterizing visualization insights from quantified selfers’ personal data presentations. IEEE Computer Graphics and Applications 35(4): 28-37.
Mid-term Assignment ! Submit capstone project plan to share folder by 19 Nov 2018 !
Highlights of Capstone Projects in 2017
In 2017 Fall, we have the following two capstone projects that contain useful components for you to reuse (permissions obtained from the owners).
RunningBit helps runners reflect on their running routes and how their heart rate changes as a function of their running speed. Download the source code here. Credit to Tinghao Li.
NokoriMe helps users keep tracking their mental stress level using a digital diary. The diary contains 10 questions adapted from the validated Perceived Stress Scale (PSS) in psychology. It also integrate data from Fitbit devices, including sleep duration, steps, caloried consumption, physical activities, etc. The factors that correlate to stress will be highlighted (based on the calculation of Spearman correlation coefficients). Download the source code here. Credit to Lys Egholm Andersen.
Feel free to reuse code in all three web applications: SleepBeta, RunningBit and NokoriMe. You can also start from scratch.
Part II: Capstone Project
Lecture 8 (2018/11/19): SCRUM
Tutorial
- Web app development process
- SCRUM
Tasks
- Set up a repository for capstone project
- Add team member “snowballs.u-tokyo[at]outlook.com”
- Create a backlog with clear definition of “DONE” using DevOps Board
- Plan for 2 Sprints/Iterations using DevOps Board
- Decide SCRUM master for each sprint
Recommended Reading
Sleep in Quantified Self
- Vanessa Ibanez, Josep Silva, and Omar Cauli. (2018) A survey on sleep assessment methods. PeerJ 6:e4849.
# This paper offers a comprehensive review of the methods for sleep assessment and an exhaustive list of sleep metrics.
- Taha Qazi, Francis A Farraye. (2018) Sleep and inflammatory bowel disease: an important bi-directional relationship. Inflamm Bowel Dis xx:xx.
# This paper provides a comprehensive review of studies investigating the relationship between sleep and inflammatory bowel diseases. You can get information on how sleep and IBD are measured.
Self-tracking in General
- Elisa Filevich, Nina Lisofsky, Maxi Becker, et al. (2017) Day2day: investigating daily variability of magnetic resonance imaging measures over half a year. BMC Neuroscience 18:65. # In this paper you can find a list of variables that people may want to keep tracking.
Lecture 9 (2018/11/26): Sprint-1
Tasks
- Work on Sprint-1
Lecture 10 (2018/12/03): Trouble Shooting
Tasks
- Trouble shooting
- Q&A
Lecture 11 (2018/12/10): Sprint-2
Tasks
- Work on Sprint-2
Lecture 12 (2018/12/17): Sprint Review
Tutorial
- Sprint review
– What has/has not been done?
– What went well?
– What problems have been encountered?
– How the problems got solved?
Tasks
- Fill in sprint review form and submit it to share folder.
- Keep working on the implementation.
Lecture 13 (2019/01/07): Good to Better
Tasks
- Complete an online survey
- Fix the date for final presentation.
- Coding and debugging.
- Preparing for final presentation.
Lecture 14 (2019/01/21): Capstone Presentation
Tasks
- Give a final presentation.