Reactime 16.0.0
Under The Hood Updates:
We found that as of the way the Reactime stood at version 15, although the program ran, the codebase is difficult to understand and work with, along with other problems. This could discourage future open source product enthusiasts from further working on Reactime and pushing updates, putting reactime in danger of depreciation. In order to prevent the chances of depreciation, we began tackling the following problems.
-
Problem: Confusing code; Solution: Refactoring
Within Reactime’s codebase, we found that there was a lot going on and often without comments to help guide iterators through understanding the code. Often, bits of code that should take about 30 mins to understand took our team up to 3 hours to understand. Our team has simplified the current codebase, added detailed comments, and removed a considerable amount of unused code in order to clear clutter, allowing future iterators to more quickly understand the code. -
Problem: Disorganized files and code; Solution: Modularization
Another significant issue with the codebase was the way the code and the files were organized; for example, the individual components on the front end, 20+ files, were all thrown into one folder without any respect to what other components they connect to or how they relate to the overall functionality of Reactime. We solved this by creating aptly named folders, and organizing files based on their functionality and their connectivity with respect to other files.
-
Problem: 42% of files in Reactime are not tested; Solution: Implementing 100% test coverage
Our team utilized Jest, React Testing Library and Supertest in order to implement testing coverage to 100% -
Problem: typescript is only partially integrated into the code; Solution: fully converted codebase to typescript
Throughout the codebase, our team found that although there was some typescript integration, most variables were untyped and many files had @ts-nocheck implemented due to various typescript bugs. Our team further fleshed out the codescript in order to include typing for all variables, and fixed the errors resulting from removing @ts-nocheck. -
Problem: Unclear user instructions; Solution: Clarified instructions for end users
Although Reactime has a website and multiple READme’s, 40% of issues on github are related to not being able to install and run the application. We have clarified the instructions as to how to run and use the program in order to remove a major barrier in Reactime’s end user’s experience.