Skip to content

Golf-Drill-Challenge-App/Golf-App

Repository files navigation

Golf-App

Cross Platform Mobile app for the OSU Men's Golf Team.

Landing Page

Tech Stack

See package.json for more details on libraries used

Architecture Diagram

architectural_diagram

Design References

Database Specifications

  • Database Schema: db_spec.jsonc
    • Overview / template of database design and structure
  • NOTE: The latest database / database specifications are now on Google Firestore (not public)

Commands

Install dependencies

  • yarn

Dev Mode Instructions for Physical Mobile Device

Compatible with both MacOS and Windows PC for app compilation. After compilation, app can be run on either iOS or Android phone.

  • Install Expo Go mobile app to run the app dev build
  • yarn start
    • Run app, scan QR code on physical phone

Dev Mode Instructions for Android Emulator

Compatible with both MacOS and Windows PC for app compilation.

  • Note that Expo Go will be automatically installed on the emulated mobile device for you
  • Create an Android Emulator AVD (simulated phone): https://developer.android.com/studio/run/managing-avds
  • You need to run the Android Emulator from command line due to a bug with Vulkan
  • Command to run Android Emulator:
    • C:\Users\<username>\AppData\Local\Android\Sdk\emulator\emulator -avd <emulated phone name> -feature -Vulkan
      • Example: C:\Users\solde\AppData\Local\Android\Sdk\emulator\emulator -avd Pixel_3a_API_34_extension_level_7_x86_64 -feature -Vulkan
      • Add -no-snapshot-load flag to start emulator from "cold boot" (if emulator keeps crashing upon turning on)
  • yarn a to run the app

Dev Mode Instructions for iOS Emulator

Needs MacOS for app compilation (to run XCode) / iOS Emulator.

WiFi / Tunneling (Dev Mode)

  • In general, if running the app on a physical mobile device, the mobile device and the PC compiling the app should be on the same WiFi network
  • If on OSU WiFi, or any other WiFi that disables peer-to-peer, use the --tunnel argument, e.g:
    • yarn start --tunnel
    • yarn i -tunnel
    • yarn a --tunnel
  • Using a mobile hotspot is another potential solution, if the other WiFi networks nearby disable peer-to-peer

Login Bypass (Dev Mode)

  • yarn test
    • Bypass login for testing purposes, will log you in as a dummy user "John Doe"
    • If you logged out of app, reload / restart app to automatically log back in as dummy user
    • Optional arguments:
      • --tunnel
        • For WiFi tunneling as described above
      • --ios or --android
        • For running app on iOS or Android emulator
      • Note that arguments can be combined, e.g. yarn test --android --tunnel

Prebuild Instructions for Android (Production Mode)

Compatible with both MacOS and Windows PC for building the project in Android Studio.

  • yarn prebuild
  • yarn android
  • Steps (to be fleshed out later):
    • Open Android Studio and build APK
    • Load it onto your phone

Prebuild Instructions for iOS (Production Mode, needs MacOS)

Needs a MacOS for building the project in XCode.

  • yarn prebuild
  • yarn ios
  • Steps (to be fleshed out later):
    • Open xcworkspace in XCode
    • Go to Product > Archive
    • View archive in folder, open package content
    • Find .app file, put in folder Payload
    • Zip Payload folder and call it <name>.ipa
    • Sideload <name>.ipa folder with AltStore

Formatting Script

  • yarn pretty
    • Runs Prettier + ESLint script to catch any code formatting or linting errors
    • NOTE: This will automatically update any files with the reformatted version; if you just want to check for possible formatting issues, run yarn pretty:check (see below)
  • yarn pretty:check
    • Runs Prettier + ESLint, but only reports formatting / linting issues and does not edit any files yet
    • Run via GitHub Actions in .github/workflows/main.yml, so that each PR gets its formatting / linting automatically checked before merge

App Compilation Troubleshooting

  • Hot Reload is enabled by default whenever you edit a page on the app, and you can also manually trigger a reload by entering r into command line
  • If reloading isn't working for some reason, double swipe up on your mobile device to exit Expo Go, and restart the app from command line

Last Year's Codebase

A different team of students worked on this projects last year, linked here for reference.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages