> For the complete documentation index, see [llms.txt](https://appcraftman1.gitbook.io/car-rental-app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://appcraftman1.gitbook.io/car-rental-app/guide.md).

# Guide

## Setup OIDC Authentication with Google Provider&#x20;

To use Google Sign In, you will need to create a project on the [Google Developer Console](https://console.developers.google.com) and create an OAuth 2.0 client ID.&#x20;

1. Get an app set up on the Google Developer Console&#x20;
2. Go to the Credentials Page Create an app for your project if you haven't already.&#x20;
3. Once that's done, click "Create Credentials" and then "OAuth client ID." You will be prompted to set the product name on the consent screen, go ahead and do that.

{% hint style="info" %}
**After updating  .env file, you have trigger code rebuild by modifying this file /screens/SocialLogin/behaviors.js. Just add a new line or any change and save it then relaunch the app.**
{% endhint %}

### Connect to your Expo account

When using Expo services like AuthSession, you should use `expo start` and login to your Expo.io account because`react-native-scripts start` uses a logged-out, anonymous developer account that's why you will have a warning message ***You are not currently signed in you Expo on your development machine.***

## Available scripts

This app include all necessary scripts to launch the commons tasks:

```bash
  "scripts": {
    "start": "react-native-scripts start",
    "eject": "react-native-scripts eject",
    "android": "react-native-scripts android",
    "ios": "react-native-scripts ios",
    "test": "jest && eslint .",
    "test:watch": "jest --watch",
    "test:updateSnapshot": "jest --updateSnapshot",
    "test:coverage": "jest --coverage",
    "test:coverage:watch": "jest --coverage --watch",
    "lint:fix": "eslint --fix src",
    "precommit": "yarn test",
    "postinstall": "rndebugger-open",
    "server": "json-server --watch api/db.json --routes api/apiRoutes.json --port 3004"
  }
```

## Testing

### Launching tests

Launch this command to execute tests:&#x20;

```bash
$ yarn test
or
$ npm run test
```

Tests are also launched before each push using a Git hook

To generate test coverage reports, use the command:&#x20;

```bash
$ yarn test:coverage
or
$ npm run test:coverage
```

To update Jest Snapshots , use the command:

```bash
$ yarn test:updateSnapshot
or
$ npm run test:updateSnapshot
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://appcraftman1.gitbook.io/car-rental-app/guide.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
