Zeus' Reflection

14 Dec 2021

Preface

In the beginning of the Fall of my University of Hawai’i at Manoa Fall 2021 semester of my Software Engineering II class, my class had been assigned to work on a project with an actual client. The goal of the assignment was to automate the inventory process of a free clinic here on Oahu, this was such a great opportunity because my team and I had a chance to be able to impact our community. The entire class had the same assignment and my professor had split the class into groups of about 8 or so, which allowed my peers and I to develop an application in quite a short amount of time. The primary tasks we had intially were to streamline the dispensing of medication and supplies and being able to view the inventory of the medication and supplies.

The class had customer meetings to further develop the application based on feedback we had received. The team that I was in went along with the preexisting theme in greek mythology that our customer had, they had shown us a little bit of the application they already use, Athena, and we decided to name our application Zeus to blend in with the theme. During the early starting phase, my team and I had decided to make a one-page application for the medical team to use, it would be easy to use as everything is easily labeled and it would be clear what each button does to be intuitive.

Contributions to Zeus

My contributions to the project had involved the search engine, dispense history display and automatically filling locations. Starting the process for the search engine was rather hard because in the semantic-ui react documentation, it took a bit of time to change the search usage they have on the website to the usage we wanted on our website. Although it was confusing, my team and I were able to get it to work and made it so that we can filter through a specific label such as the name of the medication or it’s location by pressing on the filter button and picking the correct label. Although at the start I had worked on the search engine for both the medication and supplies, I had to also work on the dispense history display which would output items that were dispensed through the application. This was done easy thanks to the history collection that was already made thanks to someone on my team. Similar to how listing the inventory, this was an additional page only admins on the website could see. Lastly I had worked on the automatically filling locations, which was a little strange since there were no default locations on Hawaii they had given us so what I did was make it so that the user can put in a new location, and the locaiton will be added to the list of possible locations. Therefore, the medical clinic can dispense anywhere on Hawaii if they wanted to.

Problems ALong the Way

The customer had sent the class an excel sheet as sample data to model our applications after, however the way it was organized had been a little bit confusing for my team and I to analyze. There were also specific measurements that were with the name of the medicine or supply and we were on the fence on whether or not to separate them or not. This is why it was important to ask questions during the biweekly customer meetings so we can figure out what they wanted exactly.

In addition to this project, I also had additional projects that I needed to work on at the same time, so I tried to work on it at designated times but often times I was also stressed out about another project I was working on. I was able to manage my time correctly to put in my changes in time before each customer meeting so that we are able to present something new or improved to the customer.

Working with the Team

I had stated prior that there were about 8 people per team in this class, this had been the biggest team that I have ever worked with. I was also unfamiliar with all of my teammates as we were first introduced to one another in this class. This was good training for me to be able to communicate better with others in a team. My team and I had also primarily used the github project board to delegate tasks. It was the most efficient way to delegate tasks since it would allow us to cover the most ground and prevents any two people from working on the same tasks, essentially double coding the same thing. Although my team did not talk a lot, we still managed to find a way to communicate our ideas.

My team and I also had review meetings in which we had done a code review according to the checklists given in the course we were in which can be viewed here. Thanks to our professor, we were able to improve our code so that it is both more readable and more practical for our uses. These were checklists for architecture, design, javascript, meteor, react, testing, and UI which made sure we reduced code where we needed to or reuse code that we already have. After we had all collectively reviewed the specific files that we wanted to review, we had improved it so that it reflects the criticism that we gave it. One thing that I definitely discovered through this project is that I want to do something like this in the future where I positively impact my community and helping out this free clinic definitely helps out my community and those in need. One thing I will definitely take away from this is that I need to improve my time management skill in a way to make things convenient for my partners, rather than it being convenient for me.

The website overview can be looked at here, and the website can be viewed here