# Registration

## Overview

The registration client is a thick Java-based client where the resident's demographic and biometric details are captured along with the supporting documents in online or offline mode. The captured information is packaged in a secure tamper-proof way and send to the server for processing.

Registration client must provide the following :

* **Secure** way of capturing an individual's demographic and biometric data. The captured data must be cryptographically secure such that the data cannot be tampered with. This is called a registration packet.
* **Interfaces to biometric devices** that comply to industry standards. This ensure that any device manufactured as per standards will work with MOSIP.
* Works in **online and offline** mode. In remote areas where internet connectivity is a challenge, the registration client must work in offline mode.
* **Remote software update** capability. There must be a way to self-update to latest patches/upgrades (bug fixes/enhancements) in a remote way. There could be hundreds of client instances running on laptops/desktops. Updates on all of them must be controlled a central server.
* **Tamper-proof client software**. The registration client must have an ability to validate the structure of the information captured so that it could detect any anomoly due to a possible manual tampering and reject the captured packet.

## Detailed functionality

[Registration Functionality](/1.1.5/modules/registration-client/registration-functionality.md)

## Process flow

### Registration officer Onboarding

![Registration Officer Onboarding](/files/-M1R7_yAdRSi4u0NjOrV)

### Registration preparation

![Registration Preparation](/files/-M1R7_yCHmbZNianApo9)

### Individual registration

![Registration](/files/-M1R7_yEtb401KZpnQK6)

### Packet upload

![Packet Upload](/files/-M1R7_yG0oTeEyYuw78S)

### End of day (EOD) process

![EOD process](/files/-M1R7_yIs7mlGqgsZeiu)

### UIN update

![UIN Update](/files/-M1R7_yKXpkLU-a_KH9S)

### Lost UIN

![Lost UIN](/files/-M1R7_yMyrTjQJu7upgL)

### Software update

![Software Update](/files/-M1R7_yOcN83ZzS01Ehs)

### Logical view

![Registration client logical view](/files/-M1R7_yQZdOQJNcHNkoY)

### Component architecture

![Registration client component architecture](/files/-M1R7_ySCix-IzuiuF8J)

## Registration packet structure

All the registration information is zipped and encrypted in a packet and sent to the server. The structure of the packet is given [here](/1.1.5/modules/registration-client/registration-packet.md).

## Registration client reference application

MOSIP provides an Windows-based reference implementation of the client that has a UI and the business logic to perform the above process flows. The code, design, App setup, build documentation is available in [registration client repo](https://github.com/mosip/registration/tree/master/registration). The App may be modified according to a country's need.

[Registation client setup guide](/1.1.5/modules/registration-client/registration-client-setup.md)

## First user on-boarding

TBD


---

# 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://docs.mosip.io/1.1.5/modules/registration-client.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.
