This App helps in storing and sharing user profile data using DID Communication with Bluetooth as a transport layer.
Note: You will need to have real
Android
device connected to your computer to run the app.
Follow these instructions to set up and run the project:
- Clone the Git repository:
https://github.com/sairanjit/user-profile-app
- Install project dependencies:
pnpm install
- Build the native dependencies:
pnpm prebuild
- Run the app:
pnpm android
- Initial Setup (Verifier Side):
- Verifier selects a user preference template
- Verifier generates a QR code containing a Bluetooth Low Energy (BLE) Service UUID
- Verifier start advertising using the above Service UUID
- User Interaction with QR Code:
- User scans the QR code using their device
- User's device extracts the BLE Service UUID from the QR code
- BLE Connection Establishment:
- User's device initiates a BLE scan using the extracted Service UUID
- User's device connects to the Verifier using the Service UUID
- BLE connection is successfully established between User and Verifier
- DIDComm Setup:
- Verifier sends a DIDComm invitation to User over the BLE connection
- User processes the received DIDComm invitation
- User accepts the DIDComm invitation
- DIDComm connection is successfully established over BLE
- User Profile Data Exchange:
- Verifier sends a request for user profile data using DIDComm over BLE with the selected user preference template
- User shares the requested profile data using DIDComm over BLE
- Data sharing process completes successfully
- BLE Connection Closure:
- User's device closes the BLE connection
- Verifier's device closes the BLE connection
sequenceDiagram
autonumber
actor User
actor Verifier
Note right of Verifier: Choose user preference template
Verifier->>Verifier: Generate QR Code with<br/>BLE Service UUID
User->>Verifier: Scan QR Code
Note over User: Extract Service UUID
User->>Verifier: BLE scan & connect<br/>using Service UUID
Verifier-->>User: BLE Connection established
Verifier->>User: Send out-of-band didcomm invitation over ble
Note over User: Process invitation
User->>Verifier: Accept invitation
Verifier-->>User: DIDComm Connection established
Verifier->>User: Request user profile using DIDComm over BLE
User->>Verifier: Share requested profile data using DIDComm over BLE
Note over User, Verifier: Data sharing completed successfully