You are on page 1of 16

SiFive’s Jira-Google Sheets Add-on Integration Solution

A Capstone Proposal

Presented to the

Faculty of CST 499 at

California State University, Monterey Bay

In Partial Fulfillment

of the Requirements for the Degree

Bachelor of Science

in

Computer Science

by

Bablu Banik

Fadl Ghaddar

Javier Gonzalez

2022
EXECUTIVE SUMMARY

SiFive’s Jira-Google Sheets Add-on Integration Solution


by
Bablu Banik
Fadl Ghaddar
Javier Gonzalez
Bachelor of Science in Computer Science
California State University Monterey Bay, 2022

The purpose of this capstone project is to provide our client, SiFive, the ability to enable

Google Sheets to have Jira update capabilities as an add-on option. Currently, users can import

their Jira data onto a Google Sheet via the downloadable Jira Cloud for Sheets extension but they

are not able to send updates back to Jira through Google Sheets. Our goal is to maximize the

effectiveness of our client’s key processes that utilize Google Sheets with Jira data by providing

them a successful Jira-Google Sheets add-on integration solution that will meet their needs and

required specifications.

SiFive designs custom semiconductors and silicon chips for commercial use and

implements a RISC-V instruction set architecture in their processors. Due to the nature of their

work, they employ teams of engineers from various disciplines to design their RISC-V core

products and use the issue and project tracking software, Jira, to help manage their projects. They

have expressed great interest in this project and would like to be able to integrate a Jira-Google

Sheets add-on integration solution into their workflow. Besides supporting our client’s needs, this

project would also benefit those looking to integrate Google Sheets data to Jira without having to

resort to paying for expensive integration software or compromise their data privacy using a

third-party application.
TABLE OF CONTENTS

PAGE
PART I
Introduction/Background 1
Project Name and Description 1
Issue: Unable to Update Jira Issues from Google Sheets 1
Solution: Jira-Google Sheets Add-on Integration Solution 2
Evidence of Need 2
Project Goals and Objectives 2
Environmental Scan/Literature Review 4

PART II
Stakeholders 6
Ethical Considerations 7
Legal Considerations 7

PART III
Timeline/Budget 8
Risks and Dependencies 9
Preliminary Usability Test Plan 9
Final Deliverables 9
Approach/Methodology 10
Team Members 11

REFERENCES 13
1

PART 1
Capstone Proposal: Introduction

Introduction/Background

Project Name and Description

SiFive’s Jira-Google Sheets Add-on Integration Solution will be an embedded add-on to

the Google Sheets platform which will allow the user to export their updated Jira data from their

Sheet back to their existing Jira project. The proposed add-on will be implemented in Google

AppScript within Google Sheets and will confirm to standard Google’s User

security/authentication methods. The plug-in will also generate a user interface menu to select

key configuration options including Jira search queries, all available custom fields, and refresh

schedule. Furthermore, this integration solution will incorporate write/update functionality and

will post changes to Jira Cloud in a buffered update fashion.

Issue: Unable to Update Jira Issues from Google Sheets

Many software development teams and companies use Altassian’s Jira Cloud for Google

Sheets as a ticketing system to keep track of bugs found in their product software and use it as a

vital tool in agile project management. Although there are many advantages to using Jira,

including importing important tracking data into Google Sheets, it does not allow users to update

their Jira issues from Google Sheets. This traditional one-way automation and native integration

from one application to another usually comes with obstacles such as pre-set rules and settling

for single direction communication between two platforms. There’s also the concern of

maintaining data privacy while transferring private company information between these two

web-based applications.
2

Solution: Jira-Google Sheets Add-on Integration Solution

Our Jira-Google Sheets Add-on Integration Solution will allow our client to manage their

product development data in Google Sheets without having to switch over to Jira’s application to

update and then extract this data back to Google Sheets. The proposed Jira-Google Sheets add-on

will allow teams to be more productive and organized by providing an additional resource to

updating Jira issues on the fly in Google Sheets. Providing a bi-directional flow of data by means

of our Jira-Google Sheets add-on will ensure that all their information is synched in real-time

across these two platforms whenever there is an update.

Evidence of Need

Our client, SiFive, is looking to incorporate this type of integration solution into their

teams’ development workflow to save time and make smarter, faster design decisions. It will also

allow their teams to stay up-to-date with Jira issues and accomplish more each day with the right

workflow. It’s worth noting that there are third-party integrations tools out there in the

marketplace, but SiFive wants to protect its sensitive proprietary company information and also

save money from having to purchase an enterprise account for these integration tools. Therefore,

it's important to build an internal add-on integration solution for in-house use only.

Project Goals and Objectives

GOALS

The goals of this project are to:

● Empower developers that utilize Google Sheets with Jira data by providing them a

successful Jira-Google Sheets add-on integration solution.

● Implement the solution whilst meeting the needs and requirements of our client.
3

OBJECTIVES

● Platform:

○ The platform must be implemented in Google AppScript within Google Sheets.

○ The platform must conform to standard Google User security/authentication

methods.

● Read/Fetch Functionality:

○ User interface menus to select key configuration options including Jira search

(JQL) queries, all available custom fields, and refresh schedule (example below)
4

● Write/Update Functionality:

○ Any user-changed data elements should be highlighted in their affected cell

locations in a predefined color scheme so that the differences between original

Jira data and changed date will be obvious to inspection.

○ Ability to update/post changes to Jira Cloud directly from Google Sheets in a

buffered update fashion.

○ There should be a menu (such as button) that allows the user to manually trigger

a write-back sequence when the data is ready.

○ There should be an option to control the notification message when the update

action is triggered.

○ Keeps track of all post/update events in a change log.

○ Should conform to the standard version history feature of Google Sheets.

Environmental Scan

The integration between Jira and Google Sheets is also provided by third-party

companies like Unito and Automate.io. Unito focuses more on integrating Microsoft Excel and

Jira (https://unito.io/connectors/jira/). Unito facilitates 2-way Jira integration syncs and manages

issues among multiple projects. On the other hand, Automate.io requires creating a workflow to

implement the integration between Jira and Google sheet (https://automate.io/). The workflow

can be complex, and it may have a learning curve for someone new.

Both Unito and Automate.io require users to add a plugin to user’s Google Drive and

Jira. Therefore, both companies can have access to the client's data. This is the primary concern

for SiFive which does not want to send its data over to 3rd parties. They would like us to develop

some supporting functions as a reusable library in AppScripts. The reason we are required to use

AppScript is so that we can get the highest data security with no cost to the implementing
5

organization. It is freely available in Google’s environment. The library of AppScript is highly

trusted and used in the domains ( like medical professionals and patient privacy) that care for

data security (IMS Health, 2015).

This project is different from other companies like Unito, and Automate.io, as

1. the development needs to happen in the Google AppScript;

2. it will not require data transfer to any third party;

3. it will be developed as a reusable library and it will not be an add-on-plugin;

4. it will be easy to use and will not require creating any workflow;

5. it will be one-way sync (sending data from Google sheet to Jira only)

To get this integration done, we need to access Google Drive API and the Jira API.

Therefore, we need to establish Oauth or Open Authorization so that our system can facilitate

communication between Google Sheets and Jira. More specifically, Oauth 2 seems like a good fit

for our purposes. OAuth 2 is an HTTP-based security protocol and it allows users of a service to

enable applications to use that service on their behalf without handing over full control. OAuth 2

is considered as the web version of a valet key (Richer, 2017). Once OAuth 2 is implemented,

this integration will help SiFive to share status, due date, description, and other fields from their

Google Sheet to their Jira instance without compromising the security of their corporate data.
6

PART II
Capstone Proposal: Social and Legal Considerations

Stakeholders

SiFive is the primary stakeholder in our project. The team members in SiFive have some

challenges integrating their Google sheet data with their Jira instance. Though few commercial

applications can facilitate this integration, SiFive does not prefer them due to the risk of data

breaches. This project intends to provide them peace of mind by ensuring sophisticated data

security and it will be free.

As it is going to be built using open-source technologies, our secondary stakeholders can

be any person or entity who needs to integrate their Google sheets and their Jira instances. The

major benefits of this integration are:

1. It will automate lots of manual jobs;

2. It will facilitate the data transfer safely; and

3. It will not require any payment for using it.

The final output from the project will be very helpful for a project manager, program

manager, software tester, etc. to carry out their manual jobs in an automated fashion. So in the

absence of this automated tool, most of the stakeholders are either

1. bound to perform their job manually by copying and pasting their works from Google

Sheets to their Jira instance; or

2. required to buy some commercial tools to automate this process and carry the risk of data

breaches.
7

Ethical Considerations

It’s safe to say that our project will not have any ethical considerations, and that is true

during production and after our project is implemented. Our project aims to become a

developer-friendly utility that maximizes efficiency, regardless of race, gender, or disability.

Therefore, we can safely conclude that there are no ethical issues to mitigate.

Legal Considerations

Our capstone project will utilize both Jira and Google Apps Script REST APIs to

accomplish our goal of creating a two-way communications Jira-Google Sheets plugin for our

client. Both platforms also come standard with their own terms and conditions and strictly

prohibit reproducing, modifying, adapting, or creating derivative works of their respective

products. Both are protected by copyright laws and reserve the right to monitor the use of their

APIs to enhance quality and verify compliance with their product terms. Our client has indicated

that keeping their proprietary data confidential is a top priority for them and that all

communications between both platforms must conform to standard Google user security and

authentication methods. Jira REST APIs utilize the OAuth 1.0a authorization protocol for

authentication and will allow us to associate our project to an organization, handle client

credentials and user tokens securely, and prevent any data compromises while using our plugin.

Because we are following authentication best practices and creating the add-on using Google’s

secure and versatile Apps Script, the chances of a data breach are very low and permissions will

only be granted to those within their organization.


8

PART III
Capstone Proposal: Project Scope

Timeline/Budget
The diagram below outlines the milestones we aim to achieve in each week.

We relied on the following resources for our project:

1) An OAuth2 library for Google Apps Script

https://github.com/googleworkspace/apps-script-oauth2

2) An existing plugin used to get data into Sheets (Atlassian's Jira Cloud for Sheets).

We used this plugin as a reference because our project aims to build upon its

limitations.
9

Risks and Dependencies

Though we do not anticipate significant risks to complete, we have deemed that

implementing OAuth2 in Google Apps Script as the most challenging, especially because every

milestone is built upon completion of this initial step. To ensure timely delivery we have started

early and we have been in constant communication with our project managers at SiFive.

Preliminary Usability Test Plan

The usability of our project will be determined by SiFive, and all testing on usability will

be done virtually in a screen sharing environment over Zoom. SiFive have explained that

usability will be determined on how well our project meet their requirements listed below:

1) The product conforms to Google's Authentication Standards. This will be tested

by connecting a user's Google account to their Jira account, and only if the

connection is successful can the user then enjoy the benefits of the application.

2) The application can receive data from Jira and redirect that data to a user-specific

sheet within Google Sheets.

3) After making changes to Jira data within that sheet, our application will be tested

on its ability to detect these changes, and then push them up to Jira upon the users

request.

4) Finally, the efficacy of our user interface will also be assessed. Most notably, this

requirement ensures that the user can easily search issues using JQL queries and

all available custom fields.

Final Deliverables

The final deliverable for this capstone project will consist of the completed GS (Apps

Script) and HTML files used to create our Jira-Google Sheets plugin. These files will be shared
10

with the SiFive team by providing them access to the project’s shared drive which will grant

them administrative privileges as collaborators to our Google Cloud Platform (GCP) project.

Once they are given access to our GCP project, our clients can configure owners and roles to this

add-on and will make it possible for users within their organization to have the proper levels of

access. This will also ensure that the libraries and dependencies included in our project are

available to new collaborators if they choose to update it in the future. In addition, the source

code for this project will be available upon completion in a public Github repository and team

members' respective ILP Portfolio website. Lastly, the Final Capstone Report will be completed

by Week 7 of the Computer Science Capstone course and submitted to CS Online faculty for

their review.

Approach/Methodology

The approach and methodology used for this capstone project will be that of the Agile

software development approach. Using a shared Jira SCRUM style board to track our project’s

progress, the team plans upcoming tasks and assignments in a backlog and organizes our

workload into one week sprints. These one week sprints/iterations coincide with our weekly

Friday standup meetings with the SiFive technical team as well as our twice-a-week check-in

team meetings. Having a shorter sprint length of one week allows us to set and meet small

achievable milestones for the project, encourages and promotes more communication between

team members and our client, and aligns with the project timeline set forth in the course’s weekly

schedule.

As mentioned earlier, our team is meeting weekly with the client and has been doing so

since the second week of May. Because we’ve initiated these meetings early on, we’ve been able

to cultivate a professional working relationship with our client, build rapport with one another,

and maintain an open channel of communication with each other. In our weekly client meetings,
11

we provide updates on the status of our project, ask any clarifying questions about particular

project requirements, share resources found to implement specific features, and demo added

functionality of our Jira-Google Sheets plugin. In turn we receive vital feedback and suggestions

from the client which allows us to make the necessary updates needed to meet their desired

specifications for the project.

The Jira-Google Sheets add-on will be written in Google Apps Script which is a

cloud-based JavaScript platform that allows users to integrate with and automate tasks across

Google Workspace products including Google Sheets. Apps Script will allow us to create an

internal plugin within Google Sheets and provide us the ability to create user interface menus

and sidebars to utilize read/fetch functionality from Jira, authenticate users using OAuth2 token

based authorization, and ultimately, provide us realtime write/update functionality from Google

Sheets back to Jira. In order to extract data from both Jira and Google Sheets, the connection or

handshake between the two platforms must be established. Fortunately for us, we’ve been able to

establish this connection and can start focusing on the CRUD operations and UI components for

this project.

Team Members

The three team members involved in creating SiFive’s Jira-Google Sheets Add-on

Integration Solution are Bablu Banik, Fadl Ghaddar, and Javier Gonzalez. Each team member is

responsible for researching, contributing, and implementing the appropriate Apps Script custom

functions and REST APIs needed to create our Jira-Google Sheet plugin in our shared GCP

project. The project will consist of different weekly stages and each member will have different

tasks to complete for each stage. To ensure that we are staying productive and not working on the

same task and/or feature (unless it’s necessary), we will leverage our shared Jira board and

evenly distribute assigned tasks to each team member and provide updates to one another via our
12

twice-a-week meetings and project Slack channel. In the event one of the team members is

unable to complete their assigned task(s) or requires assistance, other team members will

intervene and provide assistance to ensure that the project stays on track. Lastly, all three

members will be involved in the debugging and testing process and all documentation

surrounding the project will be evenly distributed amongst the team members.
13

REFERENCES

IMS Health AppScript Now Offers MediSafeTM for Prescribing to Patients. (2015). In Biotech

Week (p. 472). NewsRX LLC.

Richer, J., Sanso, A., & Glazer, I. (2017). OAuth 2 in Action / Justin Richer, Antonio

Sanso ; Foreword by Ian Glazer. 1st edition. Shelter Island, New York: Manning

Publications. Print.

You might also like