Georgia Tech Junior Design Fall 2020
-
Full user interface flows
- Users can self-assign the roles and then be directed to the corresponding Manager/Server/Runner dashboard.
- All user type dashboards can direct users to the pages they have access to according to the Hyppoe Inventory Management documentation.
-
Full backend support for the frontend to interact with the database
- Add and distribute drinks and pair items for your events.
- Watch for remaining stock of each station of the event as well as the main inventory.
- Watch status of Runners and check sales of Servers.
- Initialize transfer/return jobs between stations and main inventory.
- Manage transfer/return jobs and update their status.
-
Database support from Google Firebase
- Cloud Firestore is used to store the designed data entities for this application.
- Uploading images for new drink types hasn’t been implemented due to different native behavior across iOS and Android for using images from camera roll.
- React Native and Expo provides very limited access to the file system of the mobile device. Could avoid this if the project is written in native language to the machine (E.G. Swift/Objective-C for iOS, Java/Kotlin for Android)
- Need a lot of processing since Expo file APIs only support reading files as string, and we didn't have enough time or experience to accomplish the file processing.
- Users could directly upload the image for their new drinks to firebase as a work-around. Make sure to manually update the icon url link in drink type information in the firebase as well.
- Notifications regarding new job status or low inventory stock hasn’t been implemented.
- Cloud Firestore currently applies basic security rules for test mode. The security rules need to be updated before deploying to production.
Follow the intructions below step-by-step to run our application on your end.
Any common computers and common operating systems that support Node.js and Git.
Download and install latest LTS version of Node.js supported on your operating system (link to official download)
- Verify
node
is a valid command by runningnode -v
in your command prompt/terminal, the current installed version number (e.g.v14.15.1
) is expected to show up. - Verify
npm
is a valid command by runningnpm -v
in your command prompt/terminal, the current installed version number (e.g.6.14.8
) is expected to show up.
Install Git if you have not already.
- Make sure
git
is a valid command by runninggit --version
in your command prompt/terminal, the current installed version number (e.g.git version 2.16.0.windows.2
) is expected to show up.
Clone the current repository to your local directory using:
git clone https://github.com/VictorYu379/hyppoe-junior-design.git
Run npm install
in the root directory of your cloned local repository.
This will install all the necessary packages according to package.json.
Run npm start
in the root directory of your cloned local repository.
Expo Dev Tools (web-based control panel) will pop up as a web page in your browser.
To run on your smartphone
- Download Expo Client app from App Store or Google Play.
- Select LAN or Tunnel for connection option on Expo Dev Tools.
- Scan the QR code on Expo Dev Tools page with your smartphone.
- When the link pops out, click it to enter our application via Expo Client. (It might take from a couple seconds to a few minutes to finish building the application and downloading it to your phone.)
To run on emulators
- iOS (on Mac only)
- Install XCode.
- Android
- Install Android Studio.
- Create an Android vidtual device following this guide.
- Click on “Run on Android device/emulator” or “Run on iOS simulator” on Expo DevTools to run our application in your installed emulator.
'npm' is not recognized as interal or external command
ornpm: command not found
- npm is now distributed with Node.js. Make sure you download and install the latest LTS version of Node.js, which should automatically install the LTS version of npm. (link to official download)
Package not found
- Install the latest version of the package specified using
npm install
and retry.
- Install the latest version of the package specified using