# Getting started with the Full Stack Typescript repository

* Clone the Full Stack Typescript repository
* Setup workspace and Firebase environments
* Update Firebase Cli
* Search and replace project settings
* Build and deploy your project
* Deploy your project's functions
* Update Github workflows
* Delete unwanted libraries

## Clone the Full Stack Typescript repository

```
git clone https://github.com/Flignats/full-stack-typescript.git new-project
cd new-project
npm install --legacy-peer-deps
```

## Setup workspace and Firebase environments

Follow the environment setup guides to prepare your workspace and Firebase project for use.

* [Environment setup](/full-stack-typescript/environment-setup.md)
* [Workspace setup](/full-stack-typescript/environment-setup/workspace-setup.md)
* [Firebase project setup](/full-stack-typescript/environment-setup/firebase-project-setup.md)
* [Firebase authentication](/full-stack-typescript/environment-setup/firebase-authentication.md)
* [Firestore database](/full-stack-typescript/environment-setup/firestore-database.md)
* [Firebase hosting](/full-stack-typescript/environment-setup/firebase-hosting.md)

## Update Firebase Cli

`Login` to the Firebase Cli, if not already.

`Run` `firebase projects:list` to display the available projects

`Run` `firebase use {{project id}}` to set the active project

## Search and replace project settings

`Search` for `full-stack-typescript` and replace with your project name.

`Search` for `fullStackTypescript` and replace with your project name in `camelCase`.

`Update` `apps\example-project.eslintrc.json` directive selector prefix to be `camelCase`

`Update` firebase settings in the messaging service worker for your project `apps\full-stack-typescript\src\firebase-messaging-sw.js`&#x20;

`Update` `.firebaserc` to match your project settings:

* `Update` the `target` and `hosting` keys to your project's display name
* `Update` the `hosting` value to your project id
* `Update` the `default` value to your project id

`Update` environment files to match your project settings.

* `apps\full-stack-typescript\src\environments\environment.prod.ts`
* `apps\full-stack-typescript\src\environments\environment.ts`

`Rename` project folders to your project name

`Update` the `package.json` `version` number to the appropriate version.

## Build and deploy your project

`Run` `npm run build:example-project` to build the client side application.

`Run` `firebase deploy --only hosting` to deploy the application to Firebase hosting.

## Deploy your project's functions

`Run` `firebase deploy --only functions` to build and deploy the Google Cloud Functions.

## Update Github workflows

`Delete` or `update` the Github workflows files if you will be using Github actions to deploy your project.

* `Update` `firebaseServiceAccount` with your project's value
* `Update` `projectId` with your project id

## Delete unwanted libraries

`Delete` libraries that your project will not be using from `libs`


---

# Agent Instructions: 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:

```
GET https://flignats.gitbook.io/full-stack-typescript/getting-started-with-the-full-stack-typescript-repository.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
