Professional Documents
Culture Documents
A Capstone Proposal
Presented to the
In Partial Fulfillment
Bachelor of Science
in
Computer Science
by
Bablu Banik
Fadl Ghaddar
Javier Gonzalez
2022
EXECUTIVE SUMMARY
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
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
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
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
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.
GOALS
● Empower developers that utilize Google Sheets with Jira data by providing them a
● Implement the solution whilst meeting the needs and requirements of our client.
3
OBJECTIVES
● Platform:
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:
○ There should be a menu (such as button) that allows the user to manually trigger
○ There should be an option to control the notification message when the update
action is triggered.
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
trusted and used in the domains ( like medical professionals and patient privacy) that care for
This project is different from other companies like Unito, and Automate.io, as
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
be any person or entity who needs to integrate their Google sheets and their Jira instances. The
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
1. bound to perform their job manually by copying and pasting their works from Google
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
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
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
PART III
Capstone Proposal: Project Scope
Timeline/Budget
The diagram below outlines the milestones we aim to achieve in each week.
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
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.
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:
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
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
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
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
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.