To acquire my BS degree in Computer Science, I was required to complete ICS 496. This project-based course provides the opportunity for undergraduates to work in teams and apply the technical know-how they have gained throughout their educational journey within the ICS department. Students need to plan, execute, deliver and present a software development project. This ultimately provides preparation for real-world experiences along with the demands and expectations of the industry.
The team-based projects are sponsored by many different organizations, including faculty from the ICS department and other departments within the university, state departments, federal agencies, non-profit organizations, or industry partners. Students work closely with their project sponsors throughout the project lifecycle to make sure that the project meets the sponsor’s expectations and requirements. Upon the completion of the course, each team presents a poster about their project at the semester’s ICS Project Day.
In scientific domains, workflows are the blueprints for complex computational processes for data processing and analysis. The WfCommons project hosts are repository of production workflow instances, WfInstances. These instances support a wide range of research, development, and education activities. The WfInstances Browser is an accompanying web application that lets users easily browse, select, sort, download, simulate, visualize workflow instances in WfCommons repositories.
At the end of the course, our team and I were able to implement new features in the WfInstances Browser that primarily focused on increasing usability. One major addition we worked on was the implementation of the usage report modal, which shows a comprehensive timeline and displays the aggregate usage reports for downloads, simulations and visualizations. It also allows for date ranges to be customized so that users can filter usage data. A sidebar within the modal shows the top usage countries and displays a list of the ten most active nations in order. It uses IPInfo for geolocation tracking and is based on the combined count of users in a country that made up the bulk of those who used simulations, visualizations, and downloads.
Based on how frequently the user interacts with the application’s features, they may occasionally be prompted with questionnaires about the usability and usefulness of the site. Moreover, the JSON files for workflow instances are now acquired using the git Python package instead of the GitHub REST API for higher performance. Lastly, we developed a GitHub action to the WfInstances repository so that it displays WfInstances Browser usage data within the README file.
Here is the live deployment of the WfInstances Browser. For more information regarding our team’s progress and an extensive guide into the WfInstances Browser, visit our wfinstances.github.io page.
The overall experience and insights I acquired from this course throughout the semester allowed me to prepare for the expectations within the software development industry. Using Python scripts for handling the backend for usage metrics and TypeScript for frontend development of the usage report modal gave me a real-world application of full-stack development. It also improved my knowledge about problem-solving from a software engineering perspective and taught me how to leverage different technologies to complete a project.
Additionally, I gained hands-on experience with Docker deployments and backend development by making sure that the data flow between the frontend and backend was both correct and efficient. By working directly with our REST API, I learned how to route backend data all the way to the modal component in the frontend and integrated IPInfo geolocation tracking to elevate our usage reports with precise location-based analytics.