> For the complete documentation index, see [llms.txt](https://docs.digit.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digit.org/health/ph-v1.7/deploy/configuration/ui-configuration/project-selection.md).

# Project Selection

## Overview

Once a user logs into the HCM app, the project selection screen displays all the projects assigned to the user.

***

### 📋 1. Workflow Details

* **Project Screen**: Displays a list of projects assigned to the user. The user selects the project from the list to view.

<div align="left"><figure><img src="https://3060978721-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FugLvZh3s3IGcc8JYqNN7%2Fuploads%2FuX7PVyEYJhAAzcwq0Lor%2Fimage.png?alt=media&amp;token=5655f0a4-aa13-4de2-b4a0-3bd46a557cb5" alt="" width="205"><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="https://3060978721-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FugLvZh3s3IGcc8JYqNN7%2Fuploads%2FElWbHkzrZXdptCO7G94M%2Fimage.png?alt=media&amp;token=4c91cdc0-4091-432c-b589-5b52b48ef7d8" alt="" width="205"><figcaption></figcaption></figure></div>

* **Data Sync**: App fetches and syncs data for the selected project only.
* Sync occurs automatically at each login, so a stable internet is required at the start of the day before fieldwork.
* A “Sync in Progress” window appears on the screen, and the user cannot perform any other action until the process is complete..

***

### ⚙️ 2. Technical Implementation

#### 2.1 UI Components

* **DigitProjectCell**: Used to display each project row in the list.
* **DigitElevatedButton**: Use the “Continue” button to confirm the selection.
* **Toast Notifications**: Used to display success/error messages via DigitToastHelper.

#### 2.2 Code References

* Project selection screen: <https://github.com/egovernments/health-campaign-field-worker-app/blob/master/apps/health_campaign_field_worker_app/lib/pages/project_selection.dart>
* UI components imported from:\
  `digit_components/lib/widgets/digit_project_cell.dart`,\
  `.../digit_elevated_button.dart`,\
  `.../atoms/digit_toast_helper.dart`&#x20;

***

### 🔄 3. API Role Action Mapping

| Action                 | Endpoint                         | Purpose                                                                        |
| ---------------------- | -------------------------------- | ------------------------------------------------------------------------------ |
| Fetch user projects    | `POST /project/staff/v1/_search` | Fetches projects linked to the logged-in staff (using staffId).                |
| Fetch project metadata | `POST /project/v1/_search`       | Retrieves detailed project info such as `tenantId`, `name`, and `projectType`. |

* **Auth**: Requires `RequestInfo.authToken`.
* **Payload Example (staff search)**:

  ```json
  {
    "RequestInfo": { "authToken": "string" },
    "ProjectStaff": { "staffId": "string" }
  }
  ```
* **Payload Example (project metadata)**:

  ```json
  {
    "RequestInfo": { "authToken": "string" },
    "Project": [
      { "tenantId": "tenantA", "name": "string", "projectType": "string" }
    ]
  }
  ```
* **Role mapping**: Projects returned here determine what app screens and data the user can access post-selection.


---

# 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://docs.digit.org/health/ph-v1.7/deploy/configuration/ui-configuration/project-selection.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.
