StepsTracker
-
Users could be authenticated anonymously, no need to take a phone number or email. Upon first installation the app should ask for their name and image.
-
The application should track the user footsteps and update them in real-time, meaning while the app is in the foreground, and the user walks around, they should be able to see the steps counter increasing.
-
For each number of footsteps taken, a function must run to exchange it to “Health Points”, e.g., 100 footsteps = 1 Health Point.
-
There should be a history that lists all the exchanges that happened by date and time.
-
Show a visual feedback (e.g., Snack bar) when users gain extra points.
-
There should be a catalog of rewards so users can pick a reward they like and redeem it. Each reward is linked to one partner (e.g., 10% off on Digital Watches from Xiaomi).
-
Rewards are paid with health points, feedback should be given upon all cases: if the redemption can happen, show a confirmation dialog, if it cannot due to a low number of points, show an error message stating clearly what’s wrong.
-
There is a leaderboard page where the user can see their ranking (how many steps they have made since installing the app) compared to all other users, to encourage them to walk more.
-
If the application is in background, or turned off, the exchange will happen while they are walking, and a notification would be sent from the app telling them that they gained extra points.
-
The app is multilingual, supports both Arabic and English.
-
Usable and user-friendly interface.
-
Use a proper architecture for the code, UI code must not include any DB queries or business logic.
-
Use clear models for data.
-
Dark mode.
- The app is working on Android and iOS
- The application has been tested on Emulator and Redmi Note 10 as real device.
- The application has been tested on Simulator (iPhone 8 & iPhone 12 Pro Max iOS 14.4) and iPhone X iOS 14.4 as real device.
- google-services.json & GoogleServicesInfo.plist are included in the project.
flutter doctor
[✓] Flutter (Channel master, 2.3.0-17.0.pre.327, on macOS 11.4 20F71 darwin-x64, locale en-DZ)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.5)
[✓] IntelliJ IDEA Community Edition (version 2021.1)
[✓] VS Code (version 1.51.1)
[✓] Connected device (2 available)