Skip to content

yappeizhen/Soldier-Strong-Strawberry

Repository files navigation

Soldier-Strong

An IPPT Tracker app that uses Cloud Firestore, TensorflowJS, and Google/Apple Maps API to conduct live tracking of an NSMan's training routine including pushups, situps, and runs.

Completed Features

  • Profile Page Editing
  • User Dashboard with statistics updated live from cloud firestore
  • Running Distance and Location tracker using Google/Apple Maps
  • Pushup Counter (Computer Vision)
  • Situps Counter (Computer Vision)
  • IPPT Score Calculator

Functionality

  • Stack navigation and modal
  • Drawer navigation
  • Linked to Firebase Cloud Firestore for live updates
  • Sign up
  • Basic log in and log out
  • Input validation
  • Success and error messages

Tech Stack

  • React Native Expo
  • Firebase Cloud Firestore
  • TensorflowJS
  • MediaPipe

Simulated ELISS System using Computer Vision

Prototype build using Mediapipe model. Deployed Posenet lighting model on Tensorflow.js via React Native for real-time cilent-side inference while protecting user privacy.

Push Up Demo

pushup_demo.mp4

Sit Up Demo

situp-demo.mp4

PoseNet Tensorflow.js Pushup Screen

Push Up Screen

Use of App

Editing Profile Screen and Home Screen

Screenshot 2022-06-15 at 01 25 56 Screenshot 2022-06-15 at 01 25 16

Login/Signup Screen

Screenshot 2022-06-15 at 01 16 29 Screenshot 2022-06-15 at 01 17 18

Statics, Run Tracker and Calculator Screen

Screenshot 2022-06-15 at 01 22 05Screenshot 2022-06-15 at 01 22 05Screenshot 2022-06-12 at 15 35 20

Getting Started

npm install --legacy-peer-deps

Installs all dependencies or devDependencies from package.json file

npm run start

Runs your app in development mode.

Open it in the Expo Go app on your phone to view it by scanning the displayed QR code upon running. It will reload if you save edits to your files, and you will see build errors and logs in the terminal.

Sometimes you may need to reset or clear the React Native packager's cache. To do so, you can pass the --reset-cache flag to the start script:

npm run start --reset-cache
# or
yarn run start --reset-cache

npm test

Runs the jest test runner on your tests.

npm run ios

Like npm start, but also attempts to open your app in the iOS Simulator if you're on a Mac and have it installed.

npm run android

Like npm start, but also attempts to open your app on a connected Android device or emulator. Requires an installation of Android build tools (see React Native docs for detailed setup). We also recommend installing Genymotion as your Android emulator. Once you've finished setting up the native build environment, there are two options for making the right copy of adb available to Create React Native App:

Personalisation

Use toggles.ts in the src folder to configure customisations such as enabling authentication, and switching between bottom tab configurations.

Hooks

useAuthState

Checks if the user is logged in, and if so, returns the corresponding user information

useColorScheme

Checks the color scheme (dark or light) of the user's device

About

Best Minimum Viable Product Award – Submission for DSTA's Brainhack Code_Exp 2022 cat-1-grp-62

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published