2022-01-09 14:33:38 -08:00
# Development guide
This guide will help you set up this project.
## Requirements
- [Node ](https://nodejs.org/ ) 16.x.x (Node Version Manager: [nvm ](https://github.com/nvm-sh/nvm ))
- [Firebase ](https://console.firebase.google.com/ )
- Authentication
- Storage
- Firestore Database
- [Firebase CLI ](https://firebase.google.com/docs/cli )
- [Google Cloud SDK ](https://cloud.google.com/sdk/docs/install ) (`brew install --cask google-cloud-sdk`)
### Setup local environment variables
```bash
cp .env .env.local
```
### Authenticate to GitHub Packages
2022-07-01 12:46:51 -07:00
Project uses shared packages (`@hyper-tuner/...`).
2022-01-09 14:33:38 -08:00
They are hosted using `GitHub Packages` , to install them you need to [authenticate to GitHub Packages ](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry#authenticating-to-github-packages ) first.
#### Personal access token
Generate GitHub [Personal access token ](https://github.com/settings/tokens ).
Private token can be assign to ENV when running `npm install` in the same shell:
```bash
export NPM_GITHUB_TOKEN=YOUR_PRIVATE_GITHUB_TOKEN
```
### Install dependencies and run in development mode
```bash
# install packages
npm install
# run development server
npm start
```
## Firebase
### Storage
Authenticate:
```bash
gcloud auth login
```
Set up CORS:
```bash
2022-02-09 12:32:17 -08:00
gsutil cors set firebase/cors.json gs://< YOUR-BUCKET >
2022-01-09 14:33:38 -08:00
```