scieee AI-readable full text Open interactive document viewer

Deploying and Customising KerkoApp: a successful internship project

Zaweracz, Maciek; Harrison, Philip

Abstract

Have you or members of your institution been looking for an easy way to present a searchable collection of resources? KerkoApp is an open-source Python-based web application that provides an easy to use, searchable and browsable interface for bibliographic records stored in the Zotero reference management system. It is being used at the University of York to present a catalogue of the research outputs of a 5-year multi-institution plasma project (TDoTP) and as a community-driven resource for collating datasets and tools for researchers focusing on the human voice (YorVoice Catalogue).The initial deployment and customisation of KerkoApp at York was the first project undertaken by our current year in industry RSE intern. It gave them the opportunity to learn aspects of a wide range of languages and technologies including virtual machines, Docker, Puppet, Python, Flask, Jinja, CSS, nginx and LLMs. They also developed their interpersonal and presentational skills through working closely with researchers on the TDoTP project and presenting the catalogue at the project's final advisory panel meeting.Poster attendees will find out more about KerkoApp and how it has been deployed and customised at York. Attendees will also learn about the experiences of an RSE intern and the benefits that employing an RSE intern brings to the intern, the RSE team and the wider institution. This project demonstrates the value and benefits of establishing RSE career pathways and promoting RSE skills development within the context of DRI.

Full text

2. The Solution: KerkoApp KerkoApp [2] - an open-source web application that provides a user-friendly search and browsing interface for a shared bibliography stored in the Zotero [3] reference manager. ● Faceted search ○ Tags, (sub)categories, publication type, year etc ● Keyword search ● Relations between records ● Static pages ● Responsive design ● Highly customisable via config file, CSS and templates ● And more… 1. The Challenge: A Three-Month Deep Dive As a new RSE Intern, my first major project was to collate the scattered research outputs of the 6-year TDoTP (Turbulent Dynamics of Tokamak Plasmas) multi-institution project [1]. The goal was to deliver a complete, user-friendly catalogue of the project's publications, datasets, and software within a three-month timeframe. Project Objectives: ● Collect and centralize all missing and existing project outputs. ● Improve the existing website’s user experience. ● Create a robust, searchable system for academics to manage and browse the outputs. 3. Workflow 1. Data Archaeology and Outreach: The initial phase involved extensive data recovery. I scraped collaborator data from the project's archived website using the Wayback Machine and wrote Python scripts to find publications online. To fill the remaining gaps I used Yet Another Mail Merge (YAMM) to systematically email all project academics and collaborators, requesting details of missing publications, code, and data. 2. Centralized Management: Populated a Zotero online library with all recovered bibliographic data. 3. Interface Development: Built, styled, and deployed a KerkoApp instance to serve as the public-facing catalogue. 5. Outcomes & Impact The project successfully met its deadline and delivered a valuable, lasting asset to the plasma physics research community. By the Numbers: ●80+ Publications Recovered ●41 Conference Resources Catalogued ●14 Datasets/Software Found Project Legacy & My Growth: The uoy-kerkoapp repository has been adopted for a second major project, the YorVoice Catalogue, validating the reusability of the solution (there is even work being done on the third and fourth instances!). This internship project provided an incredible learning experience, taking me from core technical skills like Docker, Puppet and reverse proxies to soft skills like presenting my work at the project's final meeting. Live Sites Deploying and Customising KerkoApp: a successful internship project Maciej Zaweracz, Philip Harrison Research IT Team, IT Services, University of York [email protected], [email protected] References: [1] TDoTP (Turbulent Dynamics of Tokamak Plasmas) Project. tdotp.ac.uk [2] KerkoApp: A web application that provides a faceted search interface for bibliographies managed with Zotero. github.com/whiskyechobravo/kerkoapp [3] Zotero: A free and open-source reference management software to manage bibliographic data. www.zotero.org [4] TDoTP Project Library: Our first instance of uoy-kerkoapp. bibliography.tdotp.ac.uk [5] Yorvoice Catalogue: Our second instance of uoy-kerkoapp. catalogue.yorvoice.york.ac.uk 6. The Internship Model: A Win-Win Being an intern provided me with valuable experience which allowed me to expand and solidify my technical skills. It also provided me with an understanding of the world of Research Software Engineering and the academic research environment. The RSE team received a tangible, high-quality and sustainable software tool which demonstrates the successes of challenging, intern-led development projects. The team also benefited from having a broader range of experiences, backgrounds and perspectives as well as the opportunity to mentor an early-career team member. The university now has an easily deployable and useful tool which can be used across a range of research areas. The university has also demonstrated its commitment to supporting the development and growth of RSEs across a range of career stages. 7. Acknowledgements This work was funded by the "Multiscale turbulent dynamics of tokamak plasmas" EPSRC project (EP/R034737/1) and the University of York Sparks project YorVoice. A special thanks to the University of York Research IT Team and Matt Pickin for their guidance and support. 4. Technical Implementation A key part of the project was architecting a robust and reproducible deployment for KerkoApp. The entire system was designed to be portable, scalable, and easy to maintain. Core Stack & App: ● The application is built with Python and Flask, using Gunicorn as the WSGI server and Nginx as a reverse proxy. Customised Deployment: ●Hosted on a Ubuntu VM: The application runs on a Virtual Machine (VM) whose state is managed by Puppet, ensuring the environment is consistent and easy to replicate for multiple projects. ●Docker Compose: Orchestrates the entire application with a two-container setup: one for the web app and one for the Nginx reverse proxy. This makes the stack portable and isolated. ●SSL Certificates: Custom script for initialising Let’s Encrypt SSL certificates using docker containers. Other Customisation: ●CSS Styling: Simplified CSS colour management for multiple classes using custom properties (variables) allowing rapid and easy theme updating. ●Jinja2 Templates: Added logos and footer links. These are volume mounted along with the CSS styling for fast reload during development. ● Daily Sync: Implemented a customisable daily sync with the Zotero library, creating low-maintenance, automatic updates of content without manual intervention. ●Static Pages: Used to provide content such as the About and User Guide sections via Notes entries in Zotero. ●Google Analytics: Simple integration with Google Analytics via KerkoApp config file entry. Added cookie-consent pop-up to comply with privacy regulations. ●Accessibility Testing & Statement: Default implementation passed accessibility tests for keyboard navigation, interaction and use of screen readers. Colours selected to meet contrast requirements. Accessibility statement added as a static page. https://bibliography.tdotp.ac.uk/bibliography/ https://catalogue.yorvoice.york.ac.uk/catalogue/ [4] [5]