How to run the Ops app on your machine, the checks every change must pass, and how it is deployed.
The repository is utopiaspace-ops. A push to development deploys straight to production at utopia-ops.vercel.app, where Encik Beku technicians use it. Work on a branch and merge only when the change is ready for them.
Required. Without them the app shows a configuration error screen.
EXPO_PUBLIC_ENCIK_BEKU_API_URL
http://localhost:8081
Despite the name, this is the OE gateway for every BU. If you leave it unset, the web app talks to the production Encik Beku API. On an Android emulator use http://10.0.2.2:8081.
EXPO_PUBLIC_ENCIK_BEKU_API_KEY
A token from your local Encik Beku portal
Must not be empty. Never use a production token.
EXPO_PUBLIC_ENABLED_BUS
For example encik-beku,ibnu-sina
The BUs this build offers. Production leaves it unset, which means Encik Beku only.
The browser calls /eb-api/* on the same site, and vercel.json forwards it to api.oe.utopiagroup.com.my. This avoids cross-site request blocks.
Always share utopia-ops.vercel.app. The per-deploy Vercel URLs ask for a Vercel login.After a deploy, sign in as a technician, open a job, start it, record an item, photo, and payment, and complete it with a signature.The service worker only caches the app shell so the app can open offline. It never caches sign-in or job data.
Built with EAS. All profiles use the same package, com.utopiaspace.ops, so only one can be installed on a phone at a time.
Profile
Output
Use for
development
Debug APK with the development client
Native changes on a test phone
staging
APK
Internal testing
production
App bundle, version number raised automatically
Store or managed-device release
The background location library needs RNBG_LICENSE_KEY as an EAS secret. Without it the library is skipped.The plan is to hand the Android app out through Scalefusion device management in kiosk mode. The code does not check for it yet.