GOTO X-ray Binaries web app audit and update

GOTO-XBs is a web platform developed to maximise the scientific potential of the Gravitational-wave Optical Transient Observer (GOTO), a fully automated telescope designed to identify electromagnetic counterparts of gravitational-wave events and capable of observing the entire sky every ~3 days. The platform is aimed at studying X-ray binaries (XBs): systems consisting of a black hole or a neutron star that accretes gas from a companion star. XBs exhibit high variability on timescales ranging from years to milliseconds, and GOTO’s unique capabilities make it an ideal tool for systematic long-term monitoring of the entire population of XBs, which is not easily achievable.

Lead investigator Dr Felipe Jimenez-Ibarra is developing GOTO-XBs, a web platform to maximise the scientific potential of GOTO by providing real-time follow-up of XBs. This platform also aims to centralise optical data from XBs, hosting data from other instruments and telescopes (e.g. other photometric follow-ups and optical spectroscopy data). It will also serve as a real-time analysis tool for monitoring known sources and characterising newly discovered ones using GOTO light curves and spectroscopic data analysis tools for user-provided data. An initial web app was developed by Dr Jiminez-Ibarra’s team using Django and SQLite. Once the initial version of the app was complete, the team reached out to ADACS for support to provide an audit of the current implementation to provide guidance for future development, to overcome some existing issues, and to build new functionality. The goal of the ADACS project was to provide a solid foundation on which the GOTO-XBs team could further build the web app, and provide instructional information to up-skill the team.

In the 2023B semester ADACS software developers audited the web app and found it to be well written though not yet ready for production deployment. As part of the software support ADACS updated the web app to use a production database (PostgreSQL) and web server (NGINX), and containerised the app using docker. Once this “production-isation” was complete, the ADACS developers automated the ingestion of data from the main GOTO databse into the GOTO-XBS web app, so that data would be pulled every 4 hours without the need for human intervention or the risk of duplicating data. Additional features added to the web app include: a Lomb-Scargle Periodogram visualisation, an updated data-downloader which allows users to filter data prior to download, and finally a REST api to allow for the automated uploading and downloading of data.

With the app development finished, extensive documentation was created. Rather than focusing on user oriented documentation, this documentation also included a considerable amount of developer documentation to help the GOTO-XBs team understand the current state of the app, and to have the knowledge needed to be able to continue development on their own.