• Stars
    star
    135
  • Rank 269,297 (Top 6 %)
  • Language
    Java
  • Created almost 8 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bot for reporting Google Play Reviews on Slack with possibility to fast reply and creating Jira issues from low rating reviews.

Review Reporter

Review Reporter is a bot assistant that improves our interaction with users of Android applications. It integrates Google Play, Slack, Jira and Firebase services together.

Review Reporter performs in fixed interval ongoing actions:

  1. Scans Google Play Store and fetches most recent reviews of your user concerning your project.

  2. Communicates with Firebase database to check which of fetched reviews were already sent to Slack or Jira.

  3. Converts every unsent user review to Slack message and posts it on our team channel. You have access to review ids. Slack provides high variety of feature which you can include in messages. Consequently each message has button attached to it which allows our team to respond to specific review instantly, with a single click.

  4. Converts every unsent user review with star rating less or equal 3 to Jira issue and assigns it to person responsible for customer service. That way problems our precious users won't ever be omitted.

  5. It updates Firebase with new ids so the same user review won't ever be reported twice.

Related articles

Purpose of this repository

As this project combines together many services, we came to conclusion that it might be a little bit hard to create general open-source version that would satisfy needs of all. Maybe you are using other issue and progress tracking system than Jira. Or you are using different communication methods than Slack. Or you need to have other tools available in your Slack messages.

That's why this repo is only inspirational. So you can see how everything is connected together. Furthermore we have created series of posts which will help you to connect with each service separately, create your own Review Reporter and adjust it to your needs.

If you really want to use our version, then we have provided you with setup instructions. Feel free to contact us if you don't understand something or you would like to give it a try but project would need some changes on our side.

Setup

Config

All you need to do in order to make Review Reporter works for you is to fill config file with proper values of your project.

/* General info */
application_name application-name-on-google-play
android_package_name application-package

/* Google Play integration */
google_play_service_credentials_path ~/<credentials_dir>/credentialsGoogle.p12
google_play_service_account_email service-account
google_dev_console_acc google-dev-console-acc-to-access-review-replies

/* Jira integration */
jira_auth_credentials credentials-used-in-authorisation-header-in-jira-requests
jira_basepath base-path-to-your-jira-ended-with-slash
jira_project_name project-name
jira_issue_type issue-type
jira_assignee assignee-account-name
report_to_jira_scan_interval_millis scan-and-create-issues-interval

/* Firebase integration */
firebase_auth_credentials_path ~/<credentials_dir>/credentialsFirebase.json
firebase_basepath base-path-to-your-firebase-project-ended-with-slash

/* Slack integration */
slack_web_hook slack-web-hook
report_to_slack_scan_interval_millis scan-and-report-to-slack-interval

You shouldn't change any labels, only the values after "space" character. If you don't know how to acquire/find any of the values, you can find more information in our tutorial article series.

No one wants to keep credentials and keys, secrets in your project repository right? You can move config folder outside of project and edit path to *.txt file in config.properties. Remember to use absolute paths (with ~).

Generating *.jar file

Project is built with gradle.

  1. Navigate to root of the project in your terminal/console.
  2. Generate *.jar files by using ./gradlew shadowJar command.
  3. Your *.jar files will be created in <project_root>/build/libs location.
  4. Use *.jar which has "assembly" in it's name e.g review-reporter-2.6-assembly.jar.
Launching Review Reporter

Make sure your config.properties file which is pointing at your config file is in the same location as jar file.

To launch Review Reporter use following command:

java -jar JAR_NAME LAUNCHER_CLASS RUN_VARIANT

Where:

  • JAR_NAME: depending on which version of Review-Reporter you have built, you might end up with various names. In example review-reporter-2.6-assembly.jar.

  • LAUNCHER_CLASS:: this value is always the same, it points to class which is launcher class of whole project. In our case use com.azimo.tool.ReviewReporterService.

  • RUN_VARIANT: two values available - loopRun, singleRun. We allow to run Review Reporter as task running in infinite loop (until stopped by user), or once per invocation (in case you wanted to loop it by yourself e.g. in Jenkins by using crone).

Example of assembled run commands
  • java -jar review-reporter-2.6-assembly.jar com.azimo.tool.ReviewReporterService singleRun
  • java -jar review-reporter-2.6-assembly.jar com.azimo.tool.ReviewReporterService loopRun

License

Copyright (C) 2017 Azimo

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Towards financial services available to all

We’re working throughout the company to create faster, cheaper, and more available financial services all over the world, and here are some of the techniques that we’re utilizing. There’s still a long way ahead of us, and if you’d like to be part of that journey, check out our careers page.

More Repositories

1

AndroidKeyboardWatcher

Software keyboard open/close watcher for Android.
Java
845
star
2

ConditionWatcher

Android tool which helps to synchronise application behaviours with test thread in automation tests.
Java
218
star
3

MaskFormatter

Add text masking functionality to Android EditText. It will prevent user from inserting not allowed signs, and format input as well.
Java
160
star
4

fastlane-plugin-automated-test-emulator-run

Plugin dedicated for Android platform. Wraps gradle task/shell command used for launching instrumented tests. Provides start of as many AVDs with various configs as needed before test run, waits for boot, kills emulators and deletes them from hdd after tests are finished or disturbed.
Ruby
112
star
5

apple-sign-in-php-sdk

PHP library to verify and validate Apple IdentityToken and authenticate a user with Apple ID.
PHP
89
star
6

Language-Switcher-Tile

An android plugin that allows you to easily change your device language.
Java
78
star
7

Api-Error-Handler

Declare expected errors of your API and generate implementing code automatically.
Java
67
star
8

AutomationTestSupervisor

Python tool for launching and managing Android Virtual Devices and Android Automation Tests. It provides elastic configurations, test and launch profiles, test video recording, html log generation and more.
Python
42
star
9

SMFloatingLabelTextField

A subclass of UITextField that displays floating placeholder
Swift
37
star
10

RxTesting

Application with examples of test cases for Android Rx code.
Java
31
star
11

WebViewTester

Android tool to automate interaction with web pages displayed in Android WebViews. Could be especially helpful in testing UI with Espresso.
Java
29
star
12

kafka-to-avro-writer

Kafka to Avro Writer based on Apache Beam. It's a generic solution that reads data from multiple kafka topics and stores it on in cloud storage in Avro format.
Java
25
star
13

scala-updatable-config

Library based on pure-config for getting updates from Consul or Vault backend.
Scala
23
star
14

CustomScrollActions

Sample project presenting how to deal with NestedScrollView in UiAutomation tests done with Espresso framework.
Java
18
star
15

AzimoTestKit

Supporting framework for writing unit tests in Swift
Swift
16
star
16

SMSecureTaskSwitcher

Use custom view for application preview in iOS Task Switcher
Objective-C
13
star
17

SimpleBDD

Simple library for tests in BDD style, written with Objective-C.
Objective-C
10
star
18

braze-templates-cli

Simple CLI tool written in Deno for creating a back-up of Braze templates and content blocks.
TypeScript
7
star
19

AzimoNote

Very simple small app that allows you to register users and store message notes bound to their profiles. Created in order to show how to setup AutomationTestSupervisor with real Android project.
Java
6
star
20

service-homescreen-aggregator

Based on our homescreen aggregator project we are showing examples for various implementation mechanisms like DynamoDB polymorphic model or rules engine etc.
Java
3
star
21

MobileInternshipTask

Programming task for mobile internship candidates
3
star
22

AppStoreConnectAPIClient

Swift
3
star
23

DecisionEngine

Example project showing basics behind our Decision Engine, built on top of Shapeless and Scala.
Scala
2
star
24

avro-rewriter

Reads, transforms and writes avro files written on Google Cloud Storage with use of Generic Avro Records.
Java
2
star
25

paloalto-gsuite

GlobalProtect authentication using SAML from G Suite
Shell
2
star
26

extend-camunda-dmn-juel-with-java-functions

This example contains ready to run Spring Boot application with Camunda where JUEL expression language is extended.
Java
1
star
27

daggerextensions

Java
1
star