Applying natural language understanding to draw insights from documents when working in a team.
The goal of the application is to help users draw helpful insights from their documents, easily find important topics in the content, and write documentation that may be easier to read and understandable.
What it does
Uses the IBM Watson Natural Language Processing APIs for text analytics on Confluence documents.
Includes four modules:
Confluence Macro for Concepts
- Shows the high-level concepts in the content, it's relevance to the document, and a link to the DBpedia resource on the concept
Confluence Macro for Keywords
- Shows the important keywords in the content, it's relevance to the document, a sentiment score (positive, neutral, negative), and the emotion associated with the keyword in the content (sadness, joy, fear, disgust, anger)
Confluence Context Menu
- Shows the analysis of the emotional and language tones of the selected text
Confluence Content Action
- Shows the analysis of the emotional and language tones of the document
How I built it
Built using Forge for Confluence. The application is written in Node.js and makes use of
@forge/api for components and API calls to the IBM Watson Natural Language Understanding and IBM Watson Tone Analyzer APIs.
Challenges I ran into
Working within the limitations of Forge. As a mainly React developer, getting used to working with the Forge UI components such as
<Fragment /> and
<Text />. As well as using
api.fetch from Forge API to make calls to the IBM Watson APIs with _ Forge environment variables _.
Accomplishments that I'm proud of
Successfully creating a Forge application that can make third-party API requests and display them in four distinct modules.
What I learned
Learned about Forge and more about the Atlassian platform including products like Jira and Confluence. First time using the IBM Watson APIs as well.
What's next for Confluence Text Analytics
- More configuration options for Macro modules, i.e. the option to change the number of concepts and keywords returned by the API
- Extending functionality to Jira
- A wider set of analytics options available