1001 Freelance Projects
Latest Projects from Freelance Marketplaces
Today is: 03-Nov-2025 14:37 GMT
View Project
View this project in detail (Note: you will be redirected to external marketplace)
Project title: Android Kiosk App for SUNMI K2
Posted by: External project from PeoplePerHour
Started: 03-Oct-2025 10:14 GMT
Description: Overview

Build a locked-down Android kiosk app for the SUNMI K2 (24", 1080×1920 portrait).
The app will pull content from our WooCommerce /kiosk endpoint, cache it for offline-first operation, and expose native capabilities—printer, QR/camera, USB vending controller—to the web UI via a secure JS bridge.
Payments are handled via Revolut Terminal API (semi-integrated): app initiates transactions, terminal performs PCI-scoped card flow, app receives results.

Deliverables

Production-ready APK/AAB + full source code (Git repo).

JS bridge documentation + sample /kiosk bundle.

Config guide (WooCommerce endpoints/keys, Revolut Terminal setup, supported USB VID/PIDs).

Simple USB vending serial protocol spec + (nice-to-have) bench simulator.

Test plan/results (unit, instrumented, hardware-in-the-loop) and admin cheat sheet.

Scope & Requirements

Content & Offline

Fetch /kiosk HTML/JSON/assets from WooCommerce; verify signatures; local cache.

Start from cache; background delta updates (WorkManager).

Render via WebView (file://) with a minimal, audited JS↔Native bridge.

Payments — Revolut Terminal (semi-integrated)

App sends {amount, currency, orderId} to Revolut Terminal API/device.

Handle async result (approved/declined/cancelled), update UI, print receipt, update WooCommerce order.

Idempotent flow with retries; refund/void via PIN-protected admin.

Peripherals

Printer: SUNMI SDK / ESC/POS (receipts, admin prints).

QR/Barcode: CameraX + ZXing/ML Kit; expose decoded payload to WebView.

Vending: USB CDC/serial to control up to 12 slots; commands, timeouts, retries, job queue.

(Optional) NFC: Read ISO14443/NDEF tokens for loyalty/account lookup.

Kiosk & Resilience

LockTask (pinned app), immersive full-screen, auto-start on boot.

Watchdog to recover WebView/service on crash/hang.

Branded offline page and graceful error states.

Security/Privacy

TLS + cert pinning to our APIs; signed content manifests.

Admin menu with PIN; logs export with PII redaction; GDPR-aware.

Telemetry

Local event queue → batch upload (crashes, payment outcomes, dispense results, playback metrics).

Acceptance Criteria (must pass)

Boots straight into kiosk; recovers from kill/reboot in ~5s; no system chrome.

Offline-first after initial sync.

Full flow: Revolut card payment → vending dispense → receipt print → WooCommerce order update.

100 consecutive purchase cycles without ANR/crash on SUNMI K2.

Signed bundle verification enforced; admin features behind PIN.

Tech Preferences

Kotlin + Jetpack (ViewModel, WorkManager, Room).

Android WebView with shouldInterceptRequest asset interception; addJavascriptInterface for a minimal bridge.

CameraX + ZXing/ML Kit; SUNMI SDK for printer/scanner where applicable.

USB Host (CDC/FTDI), OkHttp3 with TLS pinning, Hilt DI.

Crash/metrics (Crashlytics/Sentry); ProGuard/R8.

What We Provide

WooCommerce /kiosk endpoint + adverts and signing keys.

Revolut merchant sandbox credentials and terminal.

Test hardware access or remote test windows.

API contracts and sample UI bundles.

Experience Needed

Android kiosk/terminal apps in production.

Revolut Terminal or similar semi-integrated card workflows.

USB serial on Android + ESC/POS printing.

WooCommerce/REST integrations.

Nice-to-Haves

Prior SUNMI K2 integrations.

Hardware-in-the-loop testing experience.

Content signing/manifest verification patterns.

Screening Questions (answer briefly)

Outline your semi-integrated Revolut Terminal flow (init → async status → idempotent order update → receipt).

How will you design a safe JS↔Native bridge so WebView stays sandboxed but can print/scan/dispense/pay?

Your retry/timeout strategy for DISPENSE and payment callbacks.

How do you keep kiosk mode after crashes/reboots and ensure quick recovery?

Your approach to content signing and preventing activation of tampered bundles.

Budget & Timeline

Fixed-price: £____ (please propose)

Timeline: ____ weeks (milestones welcome)

Legal

NDA and IP assignment required.

Must provide code in a private Git repo throughout the project.
Project ID: 3452185
Project category:
Project budget:
View this project in detail (Note: you will be redirected to external marketplace)
Last Projects / Browse Projects
  Project Started
Marketer UK Property Sourcing & Automation (GoHighLevel + AI) 03-Nov-2025
10:34 GMT
Change the look, feel and structure of my whitelabelled Agency 03-Nov-2025
10:18 GMT
Business Development Freelancer – Bring Event & Merch Clients 03-Nov-2025
10:17 GMT
Spreadsheet for Buisness Transformation Cutover Execution 03-Nov-2025
09:52 GMT
Plugin broke my site after update 03-Nov-2025
09:35 GMT
Booklet Designs 03-Nov-2025
09:34 GMT
I need 12 2d renders base on autocad 03-Nov-2025
09:34 GMT
I need a pitch deck writing for a new fintech company 03-Nov-2025
09:33 GMT
Need UK Telesales People 03-Nov-2025
09:33 GMT
Help complete cpd 03-Nov-2025
09:08 GMT
Helpdesk Technician 03-Nov-2025
09:01 GMT
Need assistance in Mailchimp setup pop up. 03-Nov-2025
08:58 GMT
Full Stack Developer Needed for Scalable FinTech SaaS Platform 03-Nov-2025
08:58 GMT
Video Editor Neede - 4x Multi-Cam Podcast Episodes + Shorts 03-Nov-2025
08:57 GMT
Cloud API Integration & Webhook Orchestration (Prototype) 03-Nov-2025
08:56 GMT
Browse All Projects
Projects by Skills ...
Projects for 'android'
Projects for 'ajax'
Projects for 'asp'
Projects for 'aspnet'
Projects for 'cms'
Projects for 'cpp'
Projects for 'csharp'
Projects for 'css'
Projects for 'delphi'
Projects for 'design'
Projects for 'drupal'
Projects for 'excel'
Projects for 'facebook'
Projects for 'flash'
Projects for 'html'
Projects for 'java'
Projects for 'javascript'
Projects for 'joomla'
Projects for 'iphone'
Projects for 'mysql'
Projects for 'photoshop'
Projects for 'php'
Projects for 'python'
Projects for 'ruby'
Projects for 'seo'
Projects for 'sql'
Projects for 'sysadm'
Projects for 'translate'
Projects for 'typing'
Projects for 'twitter'
Projects for 'vbnet'
Projects for 'xml'
Projects for 'wordpress'
Projects for 'writing'
Read RSS feeds ... New!
RSS feed for 'android'
RSS feed for 'ajax'
RSS feed for 'asp'
RSS feed for 'aspnet'
RSS feed for 'cms'
RSS feed for 'cpp'
RSS feed for 'csharp'
RSS feed for 'css'
RSS feed for 'delphi'
RSS feed for 'design'
RSS feed for 'drupal'
RSS feed for 'excel'
RSS feed for 'facebook'
RSS feed for 'flash'
RSS feed for 'html'
RSS feed for 'java'
RSS feed for 'javascript'
RSS feed for 'joomla'
RSS feed for 'iphone'
RSS feed for 'mysql'
RSS feed for 'photoshop'
RSS feed for 'php'
RSS feed for 'python'
RSS feed for 'ruby'
RSS feed for 'seo'
RSS feed for 'sql'
RSS feed for 'sysadm'
RSS feed for 'translate'
RSS feed for 'typing'
RSS feed for 'twitter'
RSS feed for 'vbnet'
RSS feed for 'xml'
RSS feed for 'wordpress'
RSS feed for 'writing'
New!
Проекты на русском
(Projects in Russian)

Short URL:
1001fp.com
Mobile version:
m.1001freelanceprojects.com
Copyright © 2005-2024 1001 Freelance Projects