-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' of https://github.com/universal-store/monorepo …
…into develop
- Loading branch information
Showing
1 changed file
with
89 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,105 @@ | ||
# Universal Store | ||
|
||
Universal Store is a mobile app that eliminates wait times and long lines when shopping for items. As a team, we felt that waiting in long lines just to purchase a few items is inefficient, and we wanted to work with Sneh Parmar to develop this app and to solve this issue. Besides inefficiency, there are a couple important reasons why it is important to reduce shopping wait times and long lines: Customer satisfaction and safety. | ||
## 1. Overview | ||
Universal Store is a mobile application that eliminates wait times and long lines when shopping for items. As a team, we felt that waiting in long lines just to purchase a few items is inefficient. So, we decided to work with our client, Sneh Parmar, to develop this app and to solve this issue. Besides inefficiency, there are a couple more consequential reasons why it is important to reduce shopping wait times and long lines: customer satisfaction and safety. The purpose of this document is to communicate the delivery information to the customer, the status of the software at the time of hand-off, and the steps to acquire, install, and run the Universal Store mobile application. | ||
|
||
## Technologies Used: | ||
- React Native | ||
- Apollo Client | ||
- React Navigation | ||
- Styled Components | ||
- Typescript | ||
- Prettier and Eslint | ||
- Firebase | ||
## 2. Release Notes Version 1.0 | ||
|
||
## Release Notes and Installation Guide: | ||
### 2.1 Software Features | ||
- Signup and login features | ||
- Map screen that you can navigate to look and search for stores | ||
- Stores can be selected to start shopping in | ||
- Barcode scanning feature | ||
- Item details page that shows information about scanned items and allows them to be added to cart or favorites | ||
- Cart page to see all items in your cart | ||
- Favorites page to see all favorited items | ||
- Checkout screen, but no actual payment functionality yet | ||
|
||
https://docs.google.com/document/d/1iwzAwDeSG40rd6eSSjFfsuVyyHgv0uo9m4W41JW6tfk/edit?usp=sharing | ||
### 2.2 Bug Fixes Since Last Release | ||
- Not applicable because this is the first release | ||
|
||
## Installation Guide (for Team 0110 developers): | ||
### 2.3 Known Bugs and Defects | ||
- No bugs or defects are currently known | ||
|
||
> [Download Node (GET THE LTS 12.18.3, NOT CURRENT)](https://nodejs.org/en/download/) | ||
## 3. Install Guide | ||
|
||
> [Download Yarn](https://classic.yarnpkg.com/en/docs/cli/install/) | ||
### 3.1 Pre-requisites | ||
- Android (Mac/Windows) | ||
- Android Studio - https://developer.android.com/studio/install | ||
- Android device (to run the app on a physical Android device) | ||
- iOS App (Mac only) | ||
- XCode - Install XCode using the App Store | ||
- iOS device (to run the app on a physical iPhone device) | ||
|
||
> [Set up Prettier with VSCode](https://www.codereadability.com/automated-code-formatting-with-prettier/) | ||
### 3.2 Dependent Libraries | ||
- Download and Install Yarn | ||
- https://classic.yarnpkg.com/en/docs/getting-started | ||
- Download and Install Node | ||
- https://nodejs.org/en/download/ | ||
|
||
> VSCodeExtensions: | ||
- https://marketplace.visualstudio.com/items?itemName=apollographql.vscode-apollo | ||
- https://marketplace.visualstudio.com/items?itemName=Prisma.vscode-graphql | ||
- https://marketplace.visualstudio.com/items?itemName=jpoissonnier.vscode-styled-components | ||
- https://marketplace.visualstudio.com/items?itemName=kelset.rn-full-pack | ||
### 3.3 Download Instructions | ||
- Visit the Universal Store GitHub Repository | ||
- https://github.com/universal-store/monorepo | ||
- Click on the “Code” button and download the ZIP file | ||
- Unzip the ZIP file and save it in a folder you can access later through command line | ||
|
||
> Open workspace in your IDE, then run `yarn` in terminal | ||
### 3.4 Build Instructions | ||
- Android | ||
- Open app/android folder in Android Studio to allow gradle to sync | ||
- Located in the monorepo-develop folder (unzipped file) | ||
- Once gradle sync has completed, connect an android device to your computer. | ||
- iOS | ||
- Open command line | ||
- Terminal for Mac / Command Prompt for Windows | ||
- Navigate to monorepo-develop/app folder using cd (if you are unfamiliar with command line, pleae visit Troubleshooting section!) | ||
- Run *yarn ios:pods* | ||
- Run *yarn ios:build* | ||
- These two commands create a bundle of all JavaScript code that will run from the app natively | ||
|
||
## Helpful Resources: | ||
### 3.5 Installing the App | ||
- Android | ||
- After gradle sync has completed, open command line | ||
- Terminal for Mac / Command Prompt for Windows | ||
- Navigate to the monorepo-develop/app folder using cd (if you are unfamiliar with command line, pleae visit Troubleshooting section!) | ||
- Type run *yarn android* | ||
- This command will build the app on the Android device connected to the computer | ||
- iOS | ||
- After running the two yarn commands in command line, open XCode application (if not downloaded, install from App Store) | ||
- Open UniversalStore.xcworkspace file in XCode | ||
- This will open the entire project. | ||
- Click UniversalStore icon from the files list on the left | ||
- Navigate to Signing & Capabilities | ||
- Under the “Team” selection, click on your Apple profile | ||
- Connect an iPhone to your computer | ||
- At the top bar, select the drop down for where it says “Any iOS device” | ||
- Select your connected device | ||
- Click Universal Store tab located left of drop down just used | ||
- Click Edit Scheme | ||
- Change build configuration from debug to release | ||
- In the General tab, change Bundle Identifier to org.reactjs.native.example.UniversalStore1 | ||
- Navigate to Build Phases, and then go to the section “Bundle React Native code and images”, change the code in this section to the following: | ||
- export NODE_BINARY=(which) node ../../node_modules/react-native/scripts/react-native-xcode.sh | ||
- Click Play button at the top bar | ||
- This installs the app to your iPhone | ||
|
||
* [React Native Built-in Components](https://reactnative.dev/docs/components-and-apis) | ||
### 3.6 Run Instructions | ||
- To run the app on your iPhone/Android, simply tap on the Universal Store app icon on your device | ||
|
||
* [TypeScript Cheat-sheet](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html) | ||
### 3.7 Troubleshooting | ||
- iOS | ||
- If during app installation it says it failed due to lack of verification in your physical device | ||
- Visit the settings app on your iPhone and navigate to General | ||
- Then visit the Device Management tab | ||
- Click on the Developer App tab | ||
- Verify Universal Store | ||
- In XCode, rebuild the app by clicking the Play button again | ||
- This should allow the app to install with no errors on to your iPhone | ||
- Mini crash course on commands | ||
- cd: used to change current folder/directory | ||
- i.e. cd Downloads/monorepo-develop/app | ||
- This command changes the current directory to the app folder located in the path given in the example above. | ||
- ls: lists all visible directories/folders contained in current directory | ||
- i.e. Typing ls into command line when the current directory is monorepo-develop | ||
- This will show all folders contained in monorepo-develop when the current directory is set to monorepo-develop | ||
|
||
* [Styled-components (styling library)](https://styled-components.com/docs) | ||
|
||
* [Apollo Docs](https://www.apollographql.com/docs/) |