Code Monkey home page Code Monkey logo

ximxim / react-native-feedback-reporter Goto Github PK

View Code? Open in Web Editor NEW
24.0 24.0 3.0 10.14 MB

RNFR is on a mission to help developers get useful information from testers to help debug issues by automatically gathering information and integrating it with popular tools.

Home Page: https://ximxim.github.io/react-native-feedback-reporter/

License: MIT License

Kotlin 13.85% JavaScript 3.43% Java 2.32% TypeScript 66.94% C 0.04% Objective-C 11.44% Swift 0.02% Ruby 0.51% CSS 1.45%
android feedback ios react-native reporter

react-native-feedback-reporter's Introduction

SVG Banners

You can find me on:

LinkedIn - Medium - Twitter - Email

My name is Azim, I love creating solutions. It just so happens I am a developer by profession and I get to solve problems every day. I couldn't be happier ๐Ÿ˜€. I learned computer programming from Sheridan College. I took my studies further by doing what most developers do, view as many tutorials and work with as many frameworks and new technologies as possible. I work at Lazer technologies as a React Native developer.

I spend my off time with my family๐Ÿ‘ช. I am father of two ๐Ÿ‘ง๐Ÿ‘ฆ. My wife and I are kept busy by these two ๐Ÿคฃ. I also enjoy doing origami and playing some Mario games on our Nintendo switch with my children.



Azim Ahmed's Top Langs



Azim Ahmed's GitHub stats


Technologies


html css javascript typescript typescript C# Java Swift Kotlin Solidity React Native NodeJS npm yarn Express Sass .NET React Expo Redux Graphql Docker NextJS Firebase Git Crypress Storybook Webpack Shopify Vercel GCP AWS VSCode Vim

react-native-feedback-reporter's People

Contributors

lazerblasters avatar sayurimizuguchi avatar ximxim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

react-native-feedback-reporter's Issues

Device Information (iOS/Android)

Capture some device information by default and allow users to opt-in and out of collecting this information.

Brand: ${DeviceInfo.getBrand()}
Build Number: ${DeviceInfo.getBuildNumber()}
Bundle ID: ${DeviceInfo.getBundleId()}
Device ID: ${DeviceInfo.getDeviceId()}
Device Name: ${deviceName}
IP Address: ${ipAddress}
Manufacturer: ${manufacturer}
Model: ${DeviceInfo.getModel()}
Power State: ${JSON.stringify(powerState)}
Readable Version: ${DeviceInfo.getReadableVersion()}
System Name: ${DeviceInfo.getSystemName()}
Systerm Version: ${DeviceInfo.getSystemVersion()}
Unique ID: ${DeviceInfo.getUniqueId()}
Version: ${DeviceInfo.getVersion()}

JIRA authentication

Currently, JIRA account linking can be done by user entering their username and generating the API token, and entering that in the app.

It would be great for the user to authenticate using JIRA SSO and fetch the token from there to store.

react-native-share implementation

Write own iOS and Android code to handle sharing functionality instead of relying on react-native-share.

Optionally: make react-native-share an optional dependency.

Screen Recording (iOS/Android)

Detect screen recording on the device and on-screen recording end, trigger the feedback reporter.

Also, make the recording part of the package that will be reported to integrations like JIRA or Slack.

AsyncStorage implementation

Stop the need for asyncStorage prop and implement asyncStorage build into the native package.

import { FeedbackReporter } from 'react-native-feedback-reporter';
import RNSecureKeyStore, { ACCESSIBLE } from 'react-native-secure-key-store';

React.useEffect(() => {
  /*
  * OPTIONAL: add this line if you would like have the credentials saved
  * even after app reinstall
  */
  RNSecureKeyStore?.setResetOnAppUninstallTo?.(false);
}, []);

<FeedbackReporter
  asyncStorage={{
    getItem: (key) => {
      return RNSecureKeyStore.get(key);
    },
    setItem: (key, value) => {
      return RNSecureKeyStore.set(key, value, {
        accessible: ACCESSIBLE.ALWAYS_THIS_DEVICE_ONLY,
      });
    },
  }}
/>

Github issues integration

Add Github issues integration same as JIRA and Slack in the project.

Refer to the useJIRAIntegration hook for reference.

Collect Device Information

  • getBrand()
let brand = DeviceInfo.getBrand();
// iOS: "Apple"
// Android: "xiaomi"
// Windows: ?
  • getBuildNumber()
let buildNumber = DeviceInfo.getBuildNumber();
// iOS: "89"
// Android: "4"
// Windows: ?
  • getBundleId()
let bundleId = DeviceInfo.getBundleId();
// "com.example.AwesomeApp"
  • getDeviceId()
let deviceId = DeviceInfo.getDeviceId();
// iOS: "iPhone7,2"
// Android: "goldfish"
// Windows: ?
  • getDeviceType()
let type = DeviceInfo.getDeviceType();
// 'Handset'
  • getDeviceName()
DeviceInfo.getDeviceName().then((deviceName) => {
  // iOS: "Becca's iPhone 6"
  // Android: ?
  // Windows: ?
});
  • getIpAddress()
DeviceInfo.getIpAddress().then((ip) => {
  // "92.168.32.44"
});
  • getManufacturer()
DeviceInfo.getManufacturer().then((manufacturer) => {
  // iOS: "Apple"
  // Android: "Google"
  // Windows: ?
});
  • getModel()
let model = DeviceInfo.getModel();
// iOS: ?
// Android: ?
// Windows: ?
  • getPowerState()
DeviceInfo.getPowerState().then((state) => {
  // {
  //   batteryLevel: 0.759999,
  //   batteryState: 'unplugged',
  //   lowPowerMode: false,
  // }
});
  • getReadableVersion()
let readableVersion = DeviceInfo.getReadableVersion();
// iOS: 1.0.1.32
// Android: 1.0.1.234
// Windows: ?
  • getSystemName()
let systemName = DeviceInfo.getSystemName();
// iOS: "iOS" on newer iOS devices "iPhone OS" on older devices, including older iPad's.
// Android: "Android"
// Windows: ?
  • getSystemVersion()
let systemVersion = DeviceInfo.getSystemVersion();
// iOS: "11.0"
// Android: "7.1.1"
// Windows: ?
  • getUniqueId()
let uniqueId = DeviceInfo.getUniqueId();
// iOS: "FCDBD8EF-62FC-4ECB-B2F5-92C9E79AC7F9"
// Android: "dd96dec43fb81c97"
// Windows: ?
  • getVersion()
let version = DeviceInfo.getVersion();
// iOS: "1.0"
// Android: "1.0"
// Windows: ?

Large devices support

See how the feedback reporter looks on large devices and start design discussions.

Slack Integration

  • Screenshot
  • Redux state
  • Steps to recreate
  • Intended outcome
  • Actual outcome
  • Version

Handle JIRA api errors

Send the user back to the linking account screen if the API request fails. Also clean asyncStorage.

Image editor

Add a very basic image editor that allows users to draw a rectangle on the image and include that in the package of files to upload to the integrations.

Design Modal

  • Screenshot
  • Project
    • Allow user to hide this field
    • Allow user to set default project
  • Issue Type
    • Allow user to hide this field
    • Allow user to set default issue type
  • Steps to recreate
    • Allow user to hide this field
  • Intended outcome
    • Allow user to hide this field
  • Actual outcome
    • Allow user to hide this field
  • Version
    • Allow user to hide this field
    • Allow user to set default version

JIRA integration

  • Screenshot
  • Redux state
  • Steps to recreate
  • Intended outcome
  • Actual outcome
  • Version

JIRA labels

Enhance JIRA integration to allow adding labels with the bug report.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.