Skip to main content

12/5/18 Personal Summary - 1198 words

 I have not posted on the dev blog, I will summarize the project and run down the work I did throughout.

During September and October, we did not make much progress on the project. Most of our time was spent trying to setup our individual development environments with react-native where each of us ran into our own issues. My experience primarily hinged on the more frequent updates of macOS compared to react-native causing frequent version issues and workarounds to have proper builds. I was able to find several massive threads on forums discussing the same or similar error messages to those which my builds would receive, however each of these threads contained a wide variety of "solutions" which frequently worked for only the poster or at most 5-10 other users. After reading many of these and trying their small, hacky solutions, I gave up and figured the installation of my libraries was wrong.

Initially, I had figured my Xcode was out of date, but updating that would require updating my macOS, so I tried to first guarantee my react-native was installed correctly. I tried various cleans and installations, but had no luck getting rid of the error message I'd been receiving, so I gave in to updating my macOS. After updating my macOS, I was able to update my Xcode to the latest version, but this didn't seem to solve anything. I took a break from going straight at the problem and decided to do more research and accumulate a variety of options and investigate those prior to trying them. I found that updating my macOS and Xcode was useful, however the latest version of Xcode wasn't fully compatible with react-native as it introduced a new build system which react-native does not currently support. This had me puzzled and a bit upset as the build system and react-native incompatibility had been pointed out in late 2016/early 2017, however there was no news from the react-native developers on intentions to fix this problem nor a clear workaround. The workaround, provided by other users who suffered the same issue, is to open the project in Xcode and change the build system from the latest to the legacy build system. Building with react-native-cli with this method requires some options and fails without them, so I build exclusively with Xcode. This process took until nearly 3/4 of the way through October, but now we had our environments set up and updated documentation to reflect the processes which we took and pointers for future developers.

In late October and early November, we were able to really start working on the project. We discovered that the existing code repository had very minimal documentation and severely lacked in-line comments to assist us in our foreign dive to react-native. React-native references could offer us some assistance in knowing the basics of some components, but the design and specifics of these components in which the previous developers used them remained unclear. Beyond the lack of documentation, the previous team's file structure and app design was very messy and severely lacked modularity. A lot of time went into developing some modularity as to increase our understanding of the system and fiddling with components to learn some aspects of react-native and how we can improve the application's functionality. Much of the second half of October, we fixed small bugs and improved the user interface and interaction. After gaining some familiarity with react-native components through the user experience changes, we proceeded to fixing their broken pages and any bugs on the existing shipped application. Many of the pages which provided different, key use-cases to the application were either incomplete or broken entirely. Those that were complete had bugs and required UI changes, however the most of the bugs took minor adjustments. After updating the UI and fixing the complete pages bugs, we began to develop the missing pages, however we scrapped the original team's work for these as they were extremely broken. We began to develop two primary sets of pages in the beginning of November: a login system and the "manage jobs" use-case pages.

The remainder of the time in November to the present consisted of expanding upon the application by integrating the work from our partner teams. Brady focused on integrating one of our partner team's license and VIN scanners to the "manage jobs" function. These scanners would be used to populate occupant and vehicle information fields for a given job. Kevin continued working on parts of the UI and some user interactions e.g drop down menus and keyboards. My focus was on our twist: a login system to gate the "Manage Jobs" portion of our application. Without much knowledge of our database and what was available, I had to rely on communication with the responsible team. The 3 teams had not been communicating until this point, which led to a severe lack of knowledge of their systems. I requested information too late and frequently received light, non-specific responses which required clarity. The database team needed to write PHP files to serve according SQL queries for registration/login, but I had to write them blindly and ask them to upload them. The PHP files I had wrote required a few revisions, simply due to a lack of information of the database system in which the MySQL queries I wrote would have some inconsistencies with the entities and attributes. As a team, we weren't able to complete the integration of the scanners or database for registration/login in time for our final presentation and maintenance assignment, but have made significant progress since then and are working with our sponsor to hopefully ship the application before the semester ends. We revised our approach to our login system, however are still unable to integrate the scanners. We've found this to be difficult as the two teams worked with different versions of key libraries providing many conflicts. We have been chipping away at the differences and making compromises, providing documentation for future teams to hopefully solve this problem. This was a result of a lack of early communication between the teams and our variety of solutions to the unique react-native development environment setup woes we all experienced

Since I feel we were on the cusp of completing what our sponsor asked of us and definitely believe all 3 teams could have performed better to meet his requests in a timely manner, I have been in contact with him to continue working beyond briefly beyond the semester to complete these tasks. I still have doubts we will be able to fully integrate the VIN and license ID scanners, however any additional progress and documentation towards this goal will help him and his future team. I believe in spite of our failure to meet all feature requirements, our revamp of the code repository will be highly beneficial to our sponsor's project/product. As well, throughout our project he has frequently asked future development questions and inquired what we thought his goals should be with future 499 teams. I believe our insight has better equipped him to effectively communicate with his future developers.

- Jared 'Chase' Carney
Fall 2018 CS-499
Delta V Industries

Comments

Popular posts from this blog

Personal Summary - 1005 words

During the majority of the time for the first few months on this project, our team was stuck on attempting to get ReactNative to work on all of our machines. Following the readme from the previous team did not help, as it led to a link to the ReactNative Get Started page, which gave very few instructions and no help with troubleshooting problems. Attempts at getting the latest version of the code to work proved futile, and eventually, we were just at a standstill. The only thing we were able to do at that time was look for other solutions, and to read through the code and figure out what is going on inside of it all. Most of my time was spent working on ReactNative with an Android emulator on Android Studio, however it never ended up working. Later on, Brady found out a workaround by using the Lite version of the code, which did not have the latest updates, but it allowed us to work with the project. Another change that had to be made to accommodate us was that we were using an older...