The project consists of two main applications, an Apple Watch app and a website. The combination of these two applications provide a user with a more informational and interactive interface to display the user’s heart rate data. From the user’s Apple Watch the application will send the heart rate information collected by it and send the data to the website. The website will be able to display the collected information such as the current heart rate and view past heart rate data entries. The website will also offer inputs to select certain period of time to display that on a table and chart for visual aid. Overall this project is to be able to get more use of the information collected on a person smart watch.
Click to Expand
React JSReact is a light weight framework in JavaScript that is great for dynamic web pages. For the dashboard setup that iHeartRate includes the table, graph, average heart rate, and the last recorded. All of these components must be updated with the click of a button. With React this is done easily with its capabilities such as state and props.Express JS
Just like React, Express JS is a very light weight application that is easily configured in order to create a REST API. Express also has many libraries that help with the implentation of cross platform request and other Dev Op principles. This means that it is very easy to implement logging and cross origin reasource sharing through middleware.Node JS
Node JS is used inorder to setup servers for both the frontend and backend of the application. This specific server allowed both application to use some of the same librarys in order to set up both the applications.JavaScript
JavaScript and the frameworks that are upon it were used in order to make the application dynamic and very light weight for the users to work with.Swift
Swift was used in order the Apple Watch application as it is the only language that can walk with WatchOS.Visual Studio Code
The specific code editor was used beucase of the extentions that are easily configured. There are many extentions to help build and deploy React, Express, and Docker applications.xCode
Apple's xCode envirement as it also is the only platform to work with WatchOS and swift. This IDE also a very detialed GUI in order to setup the layout of the Apple Watch Application.MongoDB
Rather the using a SQL database the applicaiton uses MongoDB. As React and Express primarly deal with JSON formated data to pass around Mongo offers a great platform in order to store and retrieve JSON formated data.Heroku
Heroku is used to deploy the Express application that is within a Docker containers. This platform made the process really simple with the Heroku CLI in order to deploy the Docker Image created by the Express ApplicationGoogle Firebase
Google Firebase is a platform on Google's cloud that is set up for Node JS projects. It also has built in capabilities that integrate 'Sign in with apple' into the project easily.Docker
Docker was used in order to put the Express Application in a container in order to simplify deployment. Using a docker image mean that if the application is able to run locally the image can run on any system that has Docker.
- Sign in using the users Apple ID
- View heart rate data that was recorded by the users apple watch
- Have a table and graph displaying the data
- Have the average and last recored heart rate displayed to the user
- Select heart rates from a certian time period
- Download all heart rate information from the users account
Apple Watch Application
- Sign in using the users Apple ID
- Start recording heart rate data to the iHeartRate applicaiton
- Stop recording the heart rate information
Project Proposal - Click Here Project Requirements - Click Here Design Spec - Click Here