View on GitHub


This is the final work product of my GSoC 2019 project with InterMine.

Project Title: Migrate RESTful web services from Struts to Spring

Primary Mentor: Daniela Butano
Backup Mentor: Julie Sullivan
Student: Prabodh Kotasthane
Project idea here.
Source Code and Downloads

Major Objectives

Extra Credit

Project Overview

InterMine integrates biological data sources, making it easy to query and analyse data. Presently InterMine uses Struts framework which is outdated. InterMine provides RESTful web-services which facilitates to execute custom or templated queries, search keywords, manage lists, discover metadata, perform enrichment statistics and manage user profiles. The main objective of this project was to migrate the web-services from Struts (Http service-service architecture) to Spring framework and document the APIs with Swagger in compliance with OpenAPI Specifications. OpenAPI specifications are easy to write and Swagger Codegen, which supports Spring, makes the job of developer easy by generating the code stubs which can be modified to render the services. Also Swagger UI provides an interactive documentation which also provides the test calls facility to quickly test-run APIs in your browser only. InterMine currently contains the web application and the web-services bundled under a single module “webapp”. InterMine team is now able to split the webapp module into three modules namely webapp, webservices and webcore. The migration of the webapp was not the part of this project.

Migrate the web-services from Struts (Http servlet-service architecture) to Spring
Well documented APIs using OpenAPI Specifications
Functional and unit testing
Add the APIs to SmartAPI project

This was really an awesome project to work upon. This project included development of large API layer consisting of a lot of different types of functional endpoints, which challenged my coding and time management skills. Also, I learnt many new technologies, like Swagger and Spring Boot, which was challenging and fun part too.


All the commits:

Resources and Demo Presentations

Community presentation for GSoC 2019.
My presentation slides.
Initial blog post on GSoC 2019.

Thoughts on GSoC

This past summer was again a great experience for me following the last edition of GSoC. Google Summer of Code with InterMine was an amaing coding and time management experience for me. InterMine community is awesome. People here are always excited and available to help. My mentors did help me promptly whenever needed. This edition of GSoC tested my time management and coding skills as the project was a bit lengthy one. I had new challenges every week which were needed to be resolved quickly. GSoC 2019 agian gave me the exposure to work with a big code base and various different technologies which was really a great experience. Overall, GSoC with InterMine made me more confident and helped me in developing technical, communication and managerial skills. Kudos to whole InterMine community and GSoC!