Envisioned Solution
To address the issues of our clients, the team envisions a mobile application to address the current safety concerns which come with collecting data from dendrometers
using the currently available software. To better facilitate research and information dissemination,
the team is proposing to add onto what TOMST has already developed by allowing visualization of data, allowing multiple datasets to be visualized,
providing tools to run analysis on the data, and utilizing the cloud to facilitate data sharing.
Below are our specific features for our envisioned solution:
- Collect Data
- Collect and store data from a dendrometer using the FTDI API to communicate with the dendrometer.
- Metadata
- Make use of metadata to make data files more easily parsable, as well as add information about the dendrometer so a user can identify the dendrometer. This will allow users to easily identify the tree from which data was collected.
- Visualization
- Visually represent data from a dendrometer using the MPAndroidChart package to create interactive graphs.
- Cluster Data
- Ability to have two or more datasets for simultaneous visualizing and analyzing.
- Cloud Sharing
- Ability to upload data and visualizations to cloud for easier shareability using an API.
High Level Requirements
In order for our team to implement an application capable of reading in data from a dendrometer and displaying it to the user in a manner acceptable to our clients, we must follow the following outlined domain-level requirements.
- Mobile Platform
- The application will be implemented on a mobile platform, specifically Android.
- Backend
- The application will contain a backend written in a low-level language, and be capable of reading in data from a TOMST point dendrometer.
- Frontend
- The application will implement a frontend that initiates data-reading from the dendrometer, and downloads the data to the appropriate location.
- GUI
- The frontend will contain a graphical user interface capable of displaying the dendrometer data.
- Metadata and Clustering
- The application will support metadata creation and a master file grouping system, so that several dendrometers can be tracked in the same file and by the same graphs. Additional information will also be provided with each set of data.
- Cloud Sharing
- The application will implement a cloud export and sharing system, to allow the users to upload data to the cloud and share with other users.
Technologies
Here are our key technological challenges that we may face in the future and what our high-researched solutions are for each challenge.
- Communicating With Embedded System
-
The most critical component of this product is the communication with the dendrometer's embedded system from a mobile device.
This is because each component of the final product relies on the data collected from the datalogger.
Similarly, the reasoning behind creating the envisioned product is the elimination of several pain points related to lack of portability and unreliable platform support,
which can only be solved if this component is feasible.
Based on our analysis of our options we have decided to use C as our backend language. This is due to the fact that C has excellent low-level development, good libraries to choose from, a big community connected to the language, and the team has good experience with using the language. - Frontend
-
This software is meant to alleviate a safety concern, as well as improve practicability of the existing software,
and is most compatible with widely accepted Android devices.
Therefore we must consider a capable frontend that we are experienced in to develop the app.
Based on our research and analysis, we have decided to use Kotlin to build our frontend. Choosing Kotlin makes most sense from a perspective of longevity because Google has named Kotlin the preferred language for Android development. Kotlin is also well supported since the developer still has full access to Java libraries, as well as Kotlin specific libraries. This also helps avoid introducing any more complexity to the project given all of the team members will be familiar with Kotlin's structure and syntax given our experience with Java in and outside of the classroom. - Cloud Export
-
With their current software, our clients have to manually download all the data from the software that they want to share.
They then would have to upload that data to a service like Google Drive. This is a very time consuming task,
that could be automated to make it much faster and easier for everyone involved.
The purpose of a cloud export service would be to make sharing data and collaboration much easier and more efficient.
Ideally, a user would be able to grab the data from the dendrometer, and have the software automatically push this data to the cloud.
This way the data is stored on the cloud and not on some storage on a device. This adds the ability for any user that has access to the data to look at it from anywhere.
This makes the whole collaboration process much easier to handle.
Based on our analysis of the cloud export service options, we have decided on using AWS as our way of storing and sharing the data from the dendrometer. We choose AWS because it is the largest cloud service in the market, it is extremely easy to use, has the specific data storage we need, it includes sharing capability, and is on the lower side for cost. - Statistics and Graph Display
-
The current dendrometer data display is undesirable and lacks essential features. Not only do we want to improve upon these criteria,
we also want to add certain computations to our statistics. A report of total, maximum,
and average growth per day will save our users the trouble of doing these basic yet time consuming calculations.
We also want to supply our users with different time series charts that relate the data in different ways.
We plan on creating a first-difference line graph that displays the change in diameter from one day to the next, as well as one that calculates and displays the daily amplitude.
Our overall goal is to introduce statistical features and graphs that improve usability and simplicity.
By comparing multiple charting libraries we were able to land on MPAndroidChart. We are satisfied with this decision because this library has great reviews online and it has been exponentially increasing in popularity. This library is well known for its high potential of aestheticism and visual appeal. Many effects and animations are provided to give charts an attractive and modern appearance. The graphs created under this library will be clickable and scrollable allowing users to interact with their data. With its functions having high customizability, we will be able to create and adjust chart framework to best suit our application.
Schedule
This is the schedule our team plans to follow for the development of the project