You're asked to write a simple GeoFencing app. User flow is the following:
- User launches app, click "Register" button
- App registers one GPS zone (lat+long+radius, you can define whatever area)
- User grants app permission
- User exits app
- When user enters the GPS zone, app calls "/report" API to let server know it's in this GPS zone
- Also create & deploy a web app that shows how many reports per day
Please clone this GitHub repository, create database, implement service + app + webapp, deploy service + webapp, build app packages, test E2E.
After it's finished, please provide the following:
- A demo video/gif of the working app (using either emulator or phone)
- Your cloned GitHub repository link that has all implementation
- The demo app package(.apk/.ipa) link (from Expo)
- WebApp URL that shows how many devices reports each day
- Summary of what you've done, thoughts/ideas on the tools
- Apache + PHP + PhpMyAdmin
- MySQL
- NodeJS + Express
- Expo/ReactNative
Set up MySQL database to store the information (timestamp + deviceId) when device calls report
Implement the NodeJS service that connects to MySQL and accepts calls from app
Implement the background task and report when device is in the GPS zone
Create & deploy a web app that shows how many reports per day
Define the test plan and write test code