Vocations Data Tool

Project Background

This project involves creating a web application that allows the priests of the Holy Cross to easily manage their applicants. It will keep track of the applicant’s basic information like name, birthday, address, and other information like times they visit the university, medical records, and transcripts. The web application production currently exists on Azure, and the development stage is also on Azure. Our aim is to update the website with new features, fix existing bugs, and create documentation on how the different processes work, such as GitHub, Jira, AWS, and Azure.

Website Demo

Our Team

Stakeholders:

Group Members (Fall 2023):

Our Work

We began the semester planning to transition the website to be hosted on Azure. However, that expectation changed when we learned that our project lead, Seth, completed that over the summer. With that being accomplished, our task became twofold: to improve the website and to create comprehensive documentation for others to take over in the future. We developed new features for the website and fixed existing bugs as well as developed guides on how to run the website locally, how to develop using proper Git hygene, how to connect to the Azure database via MySQL Workbench, and how to use the Jira board. The tasks we worked on are detailed below.

1. Environment UI Banner

UI Banner

When interacting with the vocations website, users can navigate through several environments: Testing, Testing2, Staging, Dev, and Production. Currently, the website does not display any indicators to inform users of the environment they are accessing. Our stakeholders, the priests, have requested the implementation of a UI banner that clearly denotes the current environment to the user.

2. Add/Remove Sources

The client requested the ability to add and remove entries from the "source" database with the click of a button. We implemented buttons that trigger a popup window and corresponding database queries for the user to be able to add or remove a source from the database with ease.

Add/Remove Sources Buttons

This image displays the buttons to add or remove a source next to the "source" dropdown

Add Sources Popup

This image displays the popup that appears to add a source

Remove Sources Popup

This image displays the popup that appears to remove a source

3. Source Drop-down

We worked on this drop-down menu to query and dynamically display sources from the database. We implemented functionality to select multiple sources, but the feature is no longer needed.

Source drop-down

4. Null DOB Field

The client wanted us to fix a bug that would occur when presenting the date of birth of a user if they had yet to input a value. Before, if a user did not input their date of birth, it would show up as 00-00-0000 as shown below.

Shows an unset DOB field as 00-00-0000

Now, it displays mm/dd/yyyy when the date is unset and blank if an empty date is entered, per the client's request.

Shows an unset DOB field as mm/dd/yyyy
Shows blank DOB field an empty value is entered

5. Required College Field

The website displayed a minor issue on the 'Add Prospect' page. Initially, the page erroneously labeled what should have been the 'College' field as 'School.' Moreover, this field was set as mandatory, despite not always being necessary for user objectives.

College Field Requirement

Helping Society

The vocations website serves as a crucial tool for Father John and his assistant, Matthew, in their roles. They utilize this platform to sift through thousands of candidates who are either interested in pursuing priesthood or are already in the process of becoming priests. Consequently, it is essential for this website to be both user-friendly and efficient. The more streamlined and intuitive the website is, the more time our stakeholders can focus on their selection process. Through this project, we help expedite the process of selecting priests within the Holy Cross community by enhancing the very website that houses all pertinent information and serves as the primary hub for vetting applicants.

Teamwork

Teamwork has been an essential element in the progress of our project. A prime instance of our collaborative efforts was during the initial phase where we set up our development servers and established a connection to the website. This task was arguably the most intricate, yet our collective approach proved effective. Marc took the initiative by experimenting with AWS and Ubuntu, which ultimately became our chosen solution. Following this, Max adeptly continued the process, focusing on the website integration. Concurrently, Marc anticipated potential challenges and began updating the UI through Azure development slots as a contingency measure in case of connectivity issues.

Our teamwork extends beyond task completion; it encompasses mutual support. Max has been instrumental in assisting Patrick with troubleshooting several ticket-related problems, while Marc has adeptly resolved a connection issue with the GitHub repository using AWS. Furthermore, Max ensures a culture of meticulousness by seeking peer reviews for all documentation and materials before their dissemination. Additionally, the dynamic nature of our team was tested when two members joined us for a three-week stint; we not only managed their onboarding seamlessly but also promptly adapted to cover their responsibilities upon their departure.

Reflection

What Worked Well

Weekly Meetings: Our team met weekly for two hours on Wednesdays and Sundays. These times were helpful to plan what work we wanted to get done during the week, work on those tasks together, update each other on individual progress, and help each other when needed. Meeting in person helped foster an environment of collaboration even though we were often working on separate tasks. This was also a good time to discuss big-picture things and plan ahead.

Divide-and-Conquer: Since we had many small to medium sized tasks to work on, we implemented a divide-and-conquer strategy where we each focused on specific tasks, attempted them on our own, and then came back to the group only if we needed help. This allowed us to work on multiple tickets at once and use our time effectively.

Proactive Communication: We found that things always went much more smoothly when we proactively communicated with Seth, the client, and among ourselves. Sometimes we had to wait for help or feedback, so it was always good to plan ahead and do that as early as possible so it didn't become a major blocker. Additionally, communication among team members was key as we needed to coordinate what tasks we wanted to pick up, as well as what we could do individually versus what we needed help with.

What We Would Do Differently

Setting Up: Our biggest blocker during the semester was our troubles running the website locally in order to develop and test code efficiently. After many hours and much research, we developed an effective solution using AWS. Additionally, we developed an Environment Setup Guide so that future groups do not run into this issue.

Git Hygene: Seth wanted development and pull requests to be done in a spefific way that we were not initially aware of, which forced us to re-do code and GitFlow. We created comprehensive GitFlow documentation to avoid this mistake in the future. It is essential that group members read through and understand what is expected before they start development.

Focus on Documentation: We developed a large amount of documentation this semester to ensure that future groups do not enounter the same problems that we did. However, this took away from our time coding and working on features, preventing us from potentially completing a few more features.

Getting Started

Read through the Project Handover Document, which gives more background on the project and an in-depth explanation of how to get started. However, the first step is to reach out to Seth Cattanach (scattanach1@gmail.com) for access to the GitHub repository, Jira board, Confluence, and Azure. If Seth is no longer running the Vocations website, contact the other stakeholders listed above for guidance or ask the professor for additional contacts. Once you have access, set up your development environment by going through the Environment Setup Guide and corresponding Walkthrough Video.

Resources

MySQL Connection Walkthrough

Jira Guidelines

Code Development Guidelines

Shared Folder with all Handover Documents

Tutorials

W3Schools MySQL Tutorial

W3Schools PHP Tutorial