Skip to content

OSUMC-Cultural-Awareness/app

Repository files navigation

OSUMC Cultural Awareness App

Frontend for the OSUMC Cultural Awareness Application for Android, iOS, and Web

Coverage Status CD Live Prettier

Getting Started

  1. install nodejs, yarn and git

  2. Clone this repository and api

git clone https://github.com/OSUMC-Cultural-Awareness/app
git clone https://github.com/OSUMC-Cultural-Awareness/api
  1. Follow instructions for api
  2. Install yarn packages
yarn install
  1. Start Expo through Yarn

Development should be done using a local instance of the api, but using the production api is possible.

# Local Api
yarn start

# Production Api
yarn env:prod
yarn run expo start

Deployment

Web Deployment

Deployment to web should be handled by Continuous Deployment, but in order to deploy manually

# To deploy Web to Github Pages
yarn env:prod
yarn deploy

Expo Deployment

In order to deploy to Expo first you must have an account sign up

# Login to Expo on the command line
yarn run expo login

# To deploy Mobile to Expo
yarn env:prod
yarn run expo publish

New to React Native?

We all started here at some point, here's a collection of resources we found helpful in getting started!

  • React Tutorial Nowhere better to start than the Tutorial React enables you to write a declarative UI in JavaScript/Typescript in a syntax called "jsx" which looks a lot like Html.

    If you're wondering where to put your state, favor putting it in the parent component. Avoid using refs and other hacks to get the state of a child component.

  • Typescript Tutorial JavaScript, but Better Large applications without types can become hard to maintain and Typescript helps prevent those sleepless night bugs that can plague applications.

    In order to get the most of Typescript we suggest:

    VSCode: builtin Typescript Language Server [preferred] Vim: coc-tsserver

  • React Functional Components and Hooks Previously React used to have a paradigm of Class based components, but recently the project has moved to Functional Components. These components use "hooks" to manage state, call Apis and more. They're used extensively in the application so having a good grasp on hooks is necessary.

  • React Native Paper Awesome Material Design Components These Components should be used over the default React Native components for things like Buttons, TextInput, etc.

  • Redux Tutorial Redux is a tricky to understand, but crucial component of the application allowing the storage of User Credentials and more between screens.

If there was an article that really helped you learn don't be afraid to open an Pull Request!

Documentation

Interested in why a decision was made or more about the project read the documentation.

Found a Bug?

Please open a bug report and be as descriptive and explicit as possible!

note: If the bug isn't reproducible the issue will be closed.

Product Owner

rdunfee2

License

Yet to be decided upon but discussion is taking place.