UH Career Match

UH Career Match is a web app I developed along with my classmates for ICS 314: Software Engineering I, at UH Manoa. To accomplish this project, we used the Meteor Framework along with React, Semantic UI, and MongoDB.

For project management, we used issue-driven development with Github Projects. I played the role of project manager, identifying tasks to meet our milestone requirements and creating an issue for each one.

The team worked together to implement the functionality needed to address and close each issue. I was responsible for implementing the following issues across the three milestones:

As evidenced by the issues I closed, I managed deployment and continuous integration, and played a part in application design, database management, and documentation. I also identified and addressed an issue with limited resources on GitHub Actions, as testcafe would consistently fail the first test while the app was loading, even with a 10 or 20 second delay. The solution I found was to add --page-request-timeout 100000 to the testcafe start script, which ensured the app would wait for 100 seconds before failing on timeout. This eliminated the need to wait for an arbitrary period of time, and reduced delays when sufficient resources are available to start quickly, given that it only waits until the page request is satisfied.

For deployment, we used Meteor Up to deploy our app onto a DigitalOcean droplet running Ubuntu 20.04. The app is currently hosted at https://career-match.connectiveunconscious.com, sharing the primary domain with my personal site for convenience. This also gave me the opportunity to implement SSL encryption, which was easy to accomplish since Meteor Up automates the entire process.

Since I managed deployment, I also learned live database management, since the command meteor reset that works well on local installations doesn’t work on a deployed container. Dropping the database through MongoDB with db.dropDatabase() didn’t always work, as sometimes the admin account would remain, requiring me to drop the database again to allow it to be fully reset. It makes sense that deployment is careful not to disturb the existing database, but that makes changes to database structure challenging to implement in practice. Certainly something to take into consideration for future projects.

Career Match was developed in collaboration with Cathy Kim, Gerald Lee, Ian Eshelman, and Jay Ramos. Read more about the project here. Source code for the project can be found here.