Navigating the Challenges of Modernizing HACC Hui in ICS414

11 Dec 2023

Introduction

This past Fall semester at the University of Hawaii at Manoa, I embarked on a comprehensive group project that involved revamping a crucial web application, HACC Hui. This application was utilized by the Hawaii Annual Code Challenge (or HACC, for short), required significant updates to enhance its functionality, user experience, and to modernize the code base.

Project Overview

The objective of our project was to modernize HACC Hui. This involved changing from an outdated class-based React framework using Meteor and Semantic-UI to a function-based React, utilizing React-Bootstrap. Overall, we had to: convert various pages and components to Bootstrap, replace all underscore functions, change from withTracker to useTracker, implement function-based React, and introduce unit testing for each page.

My Contributions

I was responsible for converting pages like Signin.jsx and ParticipantForm.jsx, along with numerous components and administrator pages, to Bootstrap. I also refactored all the test cases at the end to align with the updated codebase and to significantly speed up testing time. Prior to this, each page would have to sign in individually, wasting lots of time on functionality that was already tested prior.

Challenges Faced

There were numerous challenged that I encountered along the way. The hurdles included understanding and refactoring legacy code, adhering to milestone deadlines, and maintaining effective communication within the team. Additionally, the technical aspects, like mastering React-Bootstrap and ensuring the reliability of the converted pages through testing, were demanding. A more specific technical challenge came towards the end, when I had the goal to utilize the Role class in testcafe to reduce sign in time. This way did not work due to the inconsistent asynchronous timing of numerous functions that happened in the background of our application, which made me pivot to a simpler alternative.

Overcoming Obstacles

Overcoming these challenges required a patience and an open mind to learning about anything and everything regarding the project. I invested time in self-learning to better understand React-Bootstrap and functional React. I collaborated with my team by seeking feedback and engaging in problem-solving sessions to help me navigate the complexities of the project. Most importantly, improving my time management and communication skills was vital in meeting deadlines and keeping the team updated on my progress.

Learning and Growth

This project was an important learning experience. It not only enhanced my technical skills in software development but also my soft skills like teamwork, communication, and time management. Understanding and improving upon legacy code provided real-world experience into the challenges and responsibilities of a software developer.

Overall Review of ICS414

ICS414 was a valuable and practical experience in my educational journey. The course effectively bridged the gap between theoretical knowledge and real-world application by providing hands-on experience in software development. The challenges faced were important hurdles to overcome, helping me become a more competent and versatile software developer.

Conclusion

In conclusion, my experience in ICS414 was both challenging and rewarding. It offered an in-depth understanding of the intricacies of software development in a team setting and equipped me with essential skills for my future career in the tech industry. The journey, with its ups and downs, was a testament to the importance of continuous learning, collaboration, and adaptability in the ever-evolving field of software development.