Skip to content

Golf-Drill-Challenge-App/Golf-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published