> ## Documentation Index
> Fetch the complete documentation index at: https://docs.criar.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Profile Module

> SKOLE-PROF — Profile & Caretaker Module

# SKOLE-PROF — Profile & Caretaker Module

**Module ID:** `SKOLE-PROF` | **Version:** 1.0 | **Status:** Active\
**Products:** Parent App

***

## 1. Overview

| Field              | Value                                                                                                                                                                                                 |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Module Name**    | Profile & Caretaker                                                                                                                                                                                   |
| **Module Code**    | PROF                                                                                                                                                                                                  |
| **Business Value** | Gives parents a consolidated view of their family profile and their children's academic profiles. The Caretaker sub-section manages other adults (grandparents, guardians) who may pick up the child. |

***

## 2. Requirements

### Functional Requirements (FR)

*What the module must DO — actions, behaviors, and outcomes.*

* **SKOLE-PROF-FR001:** The module shall allow parents to view their own profile details (drawn from `parent_details`).
* **SKOLE-PROF-FR002:** The module shall enable parents to view the full profile and academic details for each linked child.
* **SKOLE-PROF-FR003:** The module shall allow parents to manage caretaker contacts for child pickup and emergency purposes.
* **SKOLE-PROF-FR004:** The module shall retrieve profile data directly from the JWT authentication response where possible to avoid redundant API calls.

### Non-Functional Requirements (NFR)

*How well the module must do it — performance, security, and reliability.*

* **SKOLE-PROF-NFR001:** The module shall perform efficient profile rendering by consuming the existing authentication context.
* **SKOLE-PROF-NFR002:** The module shall behave securely by ensuring parents can only access profile data linked to their authorized `parent_id`.

### Constraints

*Rules and boundaries — tech choices and platform restrictions.*

* **C001:** We must maintain data consistency between the `students` registry and the `parent_details` family mappings.
* **C002:** We must use the `skole_id` to partition caretaker records to prevent cross-school data leaks.

***

## 3. UI Requirements

| ID                 | Screen               | Route              | Description                                                          |
| ------------------ | -------------------- | ------------------ | -------------------------------------------------------------------- |
| `SKOLE-PROF-UI001` | ProfileScreen        | `/profile`         | Parent own details — name, phone, email, designation, organization   |
| `SKOLE-PROF-UI002` | ChildProfileScreen   | `/child-profile`   | Select + view each linked child (grade, DOB, blood group, ailments)  |
| `SKOLE-PROF-UI003` | StudentProfileScreen | `/child-selection` | Detailed student info tab (enrollment date, status, address summary) |

**Components:**

| ID                 | Component            | Props                                       |
| ------------------ | -------------------- | ------------------------------------------- |
| `SKOLE-PROF-UC001` | `ProfileAvatar`      | `name`, `initials`                          |
| `SKOLE-PROF-UC002` | `InfoRow`            | `label`, `value`                            |
| `SKOLE-PROF-UC003` | `ChildSwitcher`      | `children[]`, `selected`, `onChange`        |
| `SKOLE-PROF-UC004` | `MedicalAlertBanner` | `ailment` — shows if major\_ailment present |

### Conditional Expressions

| ID                 | Expression                       | Trigger            | True Action             | False Action               |
| ------------------ | -------------------------------- | ------------------ | ----------------------- | -------------------------- |
| `SKOLE-PROF-CE001` | `children.length > 1`            | Profile home       | Show ChildSwitcher      | Show single child directly |
| `SKOLE-PROF-CE002` | `student.major_ailment !== null` | ChildProfileScreen | Show MedicalAlertBanner | Hide                       |
| `SKOLE-PROF-CE003` | `student.blood_group !== null`   | Profile card       | Show blood group chip   | Hide                       |
