A Sequel To My Software Engineering Journey

16 May 2025

Background

One of the requirements for completing my bachelor’s degree in computer science at the University of Hawaii at Manoa is to take a 400 level ICS class. Since I did very well in software engineering I, I decided to continue and take the next level, software engineering II. The second level is more of a project based class, so we were assigned groups and given a project to complete. At certain stages of the project we would meet and present our progress with our fellow classmates and our client.

The Project Proposal

Our project involved creating a website for the company our client was a part of. The website we had to create was a financial sustainability model that was very user-friendly. It needed to Include various roles that allowed certain pages to have restrictions for certain users. These roles include an admin, executive, auditor, and analyst. There needed to be an audited data page where auditors can input the audited data, and stored in the database. Another page showed the forecasted data that would predict the values for the upcoming 10 years. This would be represented by a table or a line graph and would have the ability to change between the two depending on the user’s preference.One other important page includes various different stress tests which would provide certain scenarios that users can play around with.

An Unexpected Change

Before taking the software engineering II class I had to of course take the previous class. I took software engineering I during the spring of 2024. I decided to wait till the following semester, spring 2025, to take software engineering II. Little did I know that the framework and the database they decided to use was different from what I learned in software engineering I. When I was taking software engineering I the framework we were using was meteor and the database we used was mongodb. However, I believe it changed in the following semester to use Nextjs as the framework and PostgreSQL as our database. My team had the option to use one or the other and we chose the ladder. So in order for me to do well in the class and not bring my team down, I had to learn a completely new way to code. Well not really because TypeScript, the language used in the Nextjs, is very similar to JavaScript, which is what is used in meteor. The hardest part was getting familiar with PostgreSQL and prisma, which is a tool that allowed an easy way for our application to interact with the database. I ended up figuring out how most things work with the help of AI.

My Contribution

My team didn’t specify who would tackle certain issues. Some of us would write down what issues needed to be addressed and we would assign ourselves to it if we wanted to take it. However, each person would take issues in the area they were working on already. For me, I updated the design of the sign in page. It ended up crashing the application so one of our members reverted it back and redid it. Afterwards I took on more tasks relating to the admin page and the backend. I created some tables in the database and had it populated with default data. I added more roles and gave the ability for admins to change the roles of users and delete them.

Final Thoughts

Software engineering II was a very fun experience. It was a great way to prepare me for work in the real world. One thing I was surprised about was that we didn’t get to choose who we would work with. But our professor told us that we don’t get to choose who we work with in the real world so I was okay with it and ended up meeting some new people. I struggled a lot but it was all worth it because I would overcome it and figure out solutions to what I wanted to do in the project. This was a valuable experience and will definitely keep this in mind in my future endeavors.