ICS 414 Final Exam

15 Dec 2022

For ICS 414 at the University of Hawaii at Manoa, fall semester 2022, Professor Cam Moore assigned all the students to four groups consisting of about ten students. All groups were assigned to complete a project requested by the Hawaii DOE to create a web application that they could use to track bills from the legislator that pertained to the DOE. This project was to be coded in React JSX using Bootstrap 5 UI and a Meteor database. The requirements were to build a web application that accepts bill data from a scraper, then allows the users of the web application, the DOE, to choose and assign bill that were associated to the DOE throughout the department, upload testimonies for specific bills, and notify users of upcoming hearings that included a relevant bill through a user friendly graphical web interface. All groups were assigned this same project so there would be four different versions to present to the DOE at the end of the semester.

I was personally responsible for creating the home page, and the calendar page for my group’s project. I implemented both using bootstrap 5 UI and Meteor in React. The home page would show 5 buttons, each going to a main page in the web application. I also implemented a quick reference to the hearings in the database and a quick reference to the bills database that showed the most recently updated for both. Each item in these quick references would send you to an individual view page created by another team member that would show details of individual bills or hearings. I also implemented a mini calendar on the homepage that shows hearings on any given day that is selected. The calendar page worked very similarly to the mini calendar component on the home page, except it would give much more detail of the hearings on the day selected.

In order to manage so many people on a single project, we used github to have an issue driven project management. Working with other people’s code proved to be a challenge as there were many large pieces of code that I needed to get acquainted with before I could modify it in any way. This is why we used the ESlint standards so that all of our codes would be stylistically consistent. One challenge that kept arising were the merge conflicts that were produced with so many different people working on the same project. Ideally, each member would work on their own file, but there were some files that everyone needed to change. This produced some issues, but were quickly resolved by in person meetings that allowed us to collaborate in person in order to better address these issues. Overall, this experience with collaborating on a project with several different people will prove to be beneficial for the industry that I intend to go into because working with inherited code in a group is an essential part of this field.