Skip to content

A Letter To The Next Capstone Team

Isaiah edited this page May 6, 2023 · 3 revisions

A Letter To The Next Capstone Team

Introduction

Hello and congratulations on reaching your capstone assignment! This project has been an ongoing collaboration effort between the Biology and Software programs at ASU for at least 5 different capstone iterations, and aims to make the process of data collection and query easier and more efficient through each successive iteration. The previous iteration's (22-23) main goal was to reduce the cost of the overall project, and to do that, we had to switch from using AWS as a backend to using Firebase, which is cheaper and offers a far superior developer experience. This switch required the team to rewrite the application from scratch, as the entire client-server architecture and communication strategy had to be redesigned for efficiency, but from now on the sponsor has told us that she wants to stay on the same technology stack so that teams no longer have to work from square one (apparently the previous teams had been doing the same as us beforehand as well). In order to support this change, we have created documentation for the 2 codebases that can be found in the wiki's of the pwa and webUI repositories, as well as the documentation repo (the other repos were mainly for getting commits in for our individual contribution reports). In addition, Ian and myself (Isaiah) have both offered to stay reachable by Dr. Bateman so that we may answer any question you may have, either through text chat and/or calls through slack or other messaging platform.

With that introduction out of the way, I would like to share some thoughts on possible avenues of improvement that may be made to the project. Keep in mind that sponsor requested changes are always the highest priority, but if you don't have anything in particular to work on, here are a few ideas I had:

Potential Improvements

Migrating the project from JavaScript to TypeScript

I'm not sure where your experience level is at with web-development, but as of Spring 2023, TypeScript is the leading industry standard with languages, as it's a fast, typesafe superset of JavaScript that yields higher efficiency when collaborating with other devs and can catch many errors that plain JavaScript won't. When I created the projects, I chose JavaScript because we were all more familiar with that than TypeScript, but it's worth the switch, especially when considering the long-term benefits of maintainability that this long-term multiple-team project requires. In order to do this, you could follow this tutorial, and add interfaces/types for all of the objects that exist in the system. This would be a great way to get commits in on a project that's functional, learn the structure of the data and its interactions, and as mentioned earlier, improve the maintainability of the code.

Incorporate Location Tracking on the PWA

As I was nearing the end of the session, I found out that Progressive Web Apps have the ability to use the location services on mobile devices, but we didn't have enough time to implement it. This seems like a perfect opportunity to incorporate additional input validation into the project, validating that the user has selected the correct project, site, and array. Each project, site, and array combination can be assigned a set of coordinates, and upon selection, the app can verify if they are within a set radius of those coordinates (if not, warn them that the location may be incorrect, but let them proceed if they choose to do so).

Add a chart section to the WebUI

Another possible innovation could be to add a "charts" page in the webUI that can generate various charts of the data depending on user-selected parameters to give more of a visual understanding of what's happening in the field. There are many options in the npm ecosystem for react charts, and they could be implemented relatively easily so you don't have to code everything from scratch.