openboxes / openboxes/openboxes-mobile

Support barcode scanning via devices connected over Bluetooth

Open
#7 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
10
Forks
13
Avg merge
5d 22h
Merged PRs (30d)
7

Description

Based on discussion with @jmiranda, this would be a 2 part functionality:

  1. Get data from devices connected over Bluetooth.
  2. Resolve data received over Bluetooth.

Getting data from devices connected over Bluetooth

There are 2 types of workflows that need to be supported as part of this

  1. Barcode scanning devices that communicate over Bluetooth directly.
  2. Barcode scanning devices that communicate via a custom protocol.

Barcode scanning devices that communicate over Bluetooth directly

Based on the demo provided by @jmiranda, these devices are first connected to the smart phone over Bluetooth and post that, whenever they detect any sort of barcode, they pass along that data to the smart phone and that data gets "pasted" into any text field that was in focus at the time.

Pretty bare bones setup. There must be some way to intercept that "pasting" action so that we can intercept that data and do something with it.

Barcode scanning devices that communicate via a custom protocol.

Let's look at Zebra devices for an example. They have their own SDKs and they also have APIs that rely on Android intents to communicate scanned data. The latter would obviously not work for iOS devices. So in order to support these devices, we will have to use their SDKs/APIs.

Resolve data received over Bluetooth

Once data has been received over Bluetooth, we need to figure out if it's relevant to us and then do something with it.

For now we are going to assume that the scanned data is going to point to a product "id" and upon scanning we are immediately going to resolve it as such. And if the scanned data was successfully resolved as a product, we will open the product details page for the same. Doesn't matter where the user was earlier, if a product was scanned, we will immediately take them to the respective product details page.

With bar code scanning, this is where we are going to try to get before considering further use cases.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points, so begin by mapping the mobile app's Bluetooth/device integration and product lookup flow. Done means supporting direct and custom-protocol scanners on Android and iOS, resolving scanned data as a product ID, and opening that product's details page.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, ios, typescript
Domain
mobile-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.