Developing More Than Ever Before

12 May 2022

The Precursor

At the beginning of the semester I was initially nervous about whether or not I would be able to complete the tasks that were expected of us in ICS 414. It had been over a year since I had taken the prerequisite class, ICS 314, so coding in Javascript was not necessarily fresh in my mind and I was worried that I had already forgotten how to develop a website. Another reservation I had about taking this class was the pace of it. In ICS 314 the first few months were primarily focused on reviewing HTML, CSS, and Javascript, as well as learning new frameworks and libraries such as Meteor and React. There was nothing of the sort in ICS 414. We did review concepts like issue-driven agile project management in order to have seamless project integration throughout the semester, but for the most part it was expected that you were capable of starting on the development of the website right away. Despite this fear, it was to my surprise that I had quickly regained my skills and knowledge from ICS 314 once I had started modifying the MATRP template. Perhaps, I was wrong to believe that I had forgotten the material, rather, it was merely “archived” and the knowledge stored would quickly come back to me once I was ready to start using it. However, what really pushed me to take this class was that it would be an invaluable opportunity to develop a project based on the needs of an actual customer, Volunteer Ally. The previous projects I had made during my time at UH Manoa were essentially templates pre-planned by the instructor. This class would be a significant departure from that as we would now be taking input and feedback from a client that we want to satisfy. This class would provide me with valuable insight of what the web development process would look like in the real world.

A Fantastic Team

The size of the teams in ICS 414 was another differentiation from ICS 314. Previously, we had worked in groups of four people, but now we would be working in groups of six or seven. Developing the website with my team, Aloha Time, was both a daunting and exciting task. One of the most frequent problems that my ICS 314 group had faced were the constant merge conflict errors that resulted from differences in our commits. Now that there were more people working on the project we were sure to encounter more of them, and we certainly did! Nonetheless, while we would encounter problems that would cause our site to crash or the tests to fail, we would be able to get them fixed as soon as possible. This reveals the benefit of working in a larger team: there are more people to combine their talents and skills to solve problems. I am very grateful for working with the team I had as everyone was incredibly helpful and approachable. If there was an issue to discuss everyone was open to chatting on Discord, and if something was urgent everyone was able to meet for a voice chat during a planned date and time. Our team was able to incorporate our individual talents to create a feature rich website, and working with them has given me an appreciative look into what working with a team for a real company might be like.

Harder Than Ever, Better Than Ever

mergeconflict

One of the features I’m most proud of, a map with clickable opportunity markers.

The website that our customer wanted us to replicate required an extensive list of features. At first, this seemed like a formidable task since it was so much more compared to what we had to do for ICS 314. Nevertheless, we were able to effectively divide the responsibilities to recreate our customer’s website as much as possible and with additional features. I was primarily given the responsibility of recreating the pages that related to the opportunities that volunteers can participate in. Back in ICS 314 I mainly designed the front-end aspects of my group’s website such as the landing page and other parts of the user-interface. For ICS 414, replicating the ability to add, edit, and view opportunities would require developing a collection to store various attributes of an opportunity. I had to familiarize myself with databases and forms so the proper information could be stored for each opportunity and passed to different pages. I also needed to make functions that would allow for the filtering of opportunities based on different attributes. Furthermore, I had to learn how to implement various npm packages and APIs into our website so that we could have a functional map and calendar. Truth be told, attempting to get as many features the customer requested into our website was a fairly stressful challenge. In spite of that, it is this challenge that makes the effort all the more worthwhile. Overall, this class has given me an amazing opportunity to use my skills to their fullest potential, and I am very proud of what I helped to develop.