# Task List: Angular to React Migration

This document tracks the tasks for migrating the Angular Clarity application to React with Bootstrap.

## Phase 1: Project Setup & Core Infrastructure

- [x] **Task 1: Initialize React Project**
  - [x] Use `create-react-app` or Vite to set up the project structure.
  - [x] Create initial `package.json`.
  - [x] Create placeholder `index.html` and `App.js`.
- [ ] **Task 2: Install Dependencies**
  - [ ] `npm install bootstrap react-bootstrap`
  - [ ] `npm install react-router-dom`
  - [ ] `npm install axios`
- [x] **Task 3: Setup Project Folder Structure**
  - [x] Create directories for `components`, `pages`, `hooks`, `services`, `contexts`, `utils`.
- [x] **Task 4: Implement Routing**
  - [x] Set up `BrowserRouter` in `index.js`.
  - [x] Create a main routing component (`AppRoutes.js`) to define public and private routes.
- [ ] **Task 5: Authentication & State Management**
  - [ ] Create `AuthContext` to manage user session and info, replacing `UserInfoService`.
  - [ ] Implement `useAuth` hook.
- [ ] **Task 6: API Service Layer**
  - [ ] Create a generic `useApi` hook or an API client singleton (e.g., `api.js` using `axios`) to handle requests, replacing `ApiRequestService`.

## Phase 2: Feature Migration (Module by Module)

### Admin Module

- [ ] **Task 7: User Registration (`user-registration.component.ts`)**
  - [ ] Create `UserRegistration.js` page/component.
  - [ ] Build the form using `react-bootstrap` components.
  - [ ] Implement form state and validation (e.g., with `useState` or `react-hook-form`).
  - [ ] Connect to the backend API using the API service layer.
- [ ] **Task 8: Password Reset (`password-reset.component.ts`)**
  - [ ] Create `PasswordReset.js` page/component.
  - [ ] ... (similar sub-tasks as above)
- [x] **Task 9: Menu Group (`edit-menu-group.component.ts`)**
  - [x] Create `EditMenuGroupPage.js` component.
  - [x] Translate Angular template to React with react-bootstrap.
  - [x] Replicate component state and handlers.
  - [x] Create corresponding CSS and import it.
  - [x] Handle inconsistency in source HTML by matching table to headers.
- ... *More admin components to be listed here* ...

### Builder Module

- [ ] **Task 10: Dashboard (`dashboardnew.component.ts`)**
  - [ ] Create `Dashboard.js` page.
  - [ ] Migrate `line-chart.component` to a React chart component (using a library like `Chart.js` or `Recharts`).
- ... *More builder components to be listed here* ...

### FND Module

- ... *FND module components to be listed here* ...

## Phase 3: Finalization

- [ ] **Task 99: Final Review & Cleanup**
  - [ ] Code review all migrated components.
  - [ ] Remove dead code.
- [ ] **Task 100: Documentation**
  - [x] Create `analysis_report.md`.
  - [x] Create `task_list.md`.
  - [ ] Write final `instruction.md` with setup and usage instructions.
