diff --git a/README.en.md b/README.en.md
index 9a3a9861fd8ec83a9673e99ba4bc5acdf4f55806..15c7c198002a06b8759362b3f0664c31884e3f39 100644
--- a/README.en.md
+++ b/README.en.md
@@ -1,29 +1,60 @@
-# RDB Store
+# Realization of billing function based on distributed relational database
-### Overview
+## Overview
-This codelab uses accounting as an example to illustrate how to use RDB store APIs to add, delete, modify, and query revenue and expenditure records. The following figure shows the effect.
+Taking the distributed bill as an example, this Codelab uses the related interfaces of relational database to realize the operations of adding, deleting, modifying, checking and synchronizing the bill. The effect diagram is as follows:
-
+## Preview
-### Concepts
+| Add | Delete | Edit | Query |
+|:-------------------------------------------------------------:|:-------------------------------------------------------------:|:--------------------------------------------------------------:|:---------------------------------------------------------------:|
+|
|
|
|
|
-- Relational database (RDB) store: manages data based on relational models. To satisfy different needs in complicated scenarios, the RDB store offers APIs for performing operations such as adding, deleting, modifying, and querying data, and supports direct execution of SQL statements.
+## How to Use
-### Permissions
+1. On the application homepage, click the "Add" icon in the lower right corner, select the account type and fill in the amount in the pop-up window, and click "OK" to add an account.
+2. On the application homepage, click the "Edit" icon in the upper right corner, select the account to be deleted, and click the "Delete" icon below to delete the selected account.
+3. On the application homepage, click the account you want to edit, change the account type or amount in the pop-up window, and click OK to modify an account.
+4. On the home page of the application, click the search column and fill in the amount of the account you want to find. Click the "Search" icon and the bottom will be refreshed to the account with the amount of the found amount. When the search column is empty, all accounts will be displayed.
-N/A
+## Project Directory
-### How to Use
+```
+├──entry/src/main/ets
+│ ├──common
+│ │ └──CommonConstants.ets // Constant set
+│ ├──components
+│ │ └──BillDialog.ets // Bill pop-up assembly
+│ ├──entryability
+│ │ └──EntryAbility.ets // Entry file
+│ ├──pages
+│ │ └──BillHomePage.ets // First page of bill
+│ ├──utils
+│ │ └──RdbManager.ets // Relational database management class
+│ └──viewmodel
+│ └──BillViewModel.ets // Bill model
+└──entry/src/main/resources // Resource file
+```
-1. On the app home page, touch the Add icon in the lower right corner. In the dialog box that is displayed, select an account item type, enter the amount, and tap OK to add an account item.
-2. On the app home page, touch the Edit icon in the upper right corner, select the account item to be deleted, and touch the Delete icon at the bottom to delete the selected account item.
-3. On the app home page, touch the account item to be edited. In the dialog box that is displayed, change the account item type or amount, and tap OK to modify the account item.
-4. On the app home page, touch the search bar, enter the amount of the account item to be searched for, and touch the Search icon. The account item whose amount is the searched amount is displayed. If the search bar is empty, all account items are displayed.
+## How to Implement
-### Constraints
+1. When the application starts for the first time, call the requestPermissionsFromUser() method to dynamically pop up the window to get authorization.
+2. Create a relational database, create a relational database through relationalStore.getRdbStore(), and set the distributed database tables through the setDistributedTables() method.
+3. Call the on('dataChange') interface to subscribe to the data changes of other devices in the networking, and register the data change callback function.
+4. Encapsulates four methods of adding(insert()), deleting(delete()), changing(update()) and searching(query()) to the operation database.
+5. Call the interface sync() of synchronous data to push the current device data change to other devices in the networking.
+6. Get the changed data list and update the local data.
+
+## Permissions
+
+* ohos.permission.DISTRIBUTED_DATASYNC:Allow data exchange between different devices.
+
+## Constraints
1. The sample is only supported on Huawei phones with standard systems.
-2. The HarmonyOS version must be HarmonyOS 5.0.5 Release or later.
-3. The DevEco Studio version must be DevEco Studio 5.0.5 Release or later.
-4. The HarmonyOS SDK version must be HarmonyOS 5.0.5 Release SDK or later.
+2. The HarmonyOS version must be HarmonyOS 5.1.1 Release or later.
+3. The DevEco Studio version must be DevEco Studio 5.1.1 Release or later.
+4. The HarmonyOS SDK version must be HarmonyOS 5.1.1 Release SDK or later.
+5. Double-ended devices need to log in to the same Huawei account, so it is recommended to turn on the device finding function.
+6. Double-ended devices need to turn on the Wi-Fi and Bluetooth switches. When conditions permit, it is recommended to connect to the same LAN.
+7. Both end devices need this application.
diff --git a/screenshots/devices/RDB_Store.en.gif b/screenshots/devices/RDB_Store.en.gif
deleted file mode 100644
index 78ba7e70b2e60f8b980011b7021c50762e63381e..0000000000000000000000000000000000000000
Binary files a/screenshots/devices/RDB_Store.en.gif and /dev/null differ
diff --git a/screenshots/devices/RDB_Store.gif b/screenshots/devices/RDB_Store.gif
deleted file mode 100644
index 694cd1ec58aa79dd93d0bfd5c06da3f41a2998a3..0000000000000000000000000000000000000000
Binary files a/screenshots/devices/RDB_Store.gif and /dev/null differ
diff --git a/screenshots/devices/billAdd.en.gif b/screenshots/devices/billAdd.en.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4500b921e13ba30c9699b1c6ba5a6b6ad4f4d4f7
Binary files /dev/null and b/screenshots/devices/billAdd.en.gif differ
diff --git a/screenshots/devices/billAdd.gif b/screenshots/devices/billAdd.gif
index aa555fb66b004836c53f1bdb156e025b682af954..9917ce3c1f5e3fea72241d5acb31647e4632c016 100644
Binary files a/screenshots/devices/billAdd.gif and b/screenshots/devices/billAdd.gif differ
diff --git a/screenshots/devices/billDel.en.gif b/screenshots/devices/billDel.en.gif
new file mode 100644
index 0000000000000000000000000000000000000000..3bbe402adf3af5e6fa6de71dcbc44e9db921ad34
Binary files /dev/null and b/screenshots/devices/billDel.en.gif differ
diff --git a/screenshots/devices/billDel.gif b/screenshots/devices/billDel.gif
index ed07ff18456e69696d06d9ee117df03c569bfc88..7b7f4eb9f3fcf2801dddc80262e04b224ab4cb74 100644
Binary files a/screenshots/devices/billDel.gif and b/screenshots/devices/billDel.gif differ
diff --git a/screenshots/devices/billEdit.en.gif b/screenshots/devices/billEdit.en.gif
new file mode 100644
index 0000000000000000000000000000000000000000..108da14e27eec5fc5c058c3f92462784a4223cf9
Binary files /dev/null and b/screenshots/devices/billEdit.en.gif differ
diff --git a/screenshots/devices/billEdit.gif b/screenshots/devices/billEdit.gif
index c164c8d211fe091ff90af903f0aa7282a383ba7b..622bf7b12a03ddc6bca394133e2e245b801fdbcf 100644
Binary files a/screenshots/devices/billEdit.gif and b/screenshots/devices/billEdit.gif differ
diff --git a/screenshots/devices/billQuery.en.gif b/screenshots/devices/billQuery.en.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0ff9ead3fd9313557653ce8ba9f6afeccecc4a41
Binary files /dev/null and b/screenshots/devices/billQuery.en.gif differ
diff --git a/screenshots/devices/billQuery.gif b/screenshots/devices/billQuery.gif
index 891a2c1998b77ae0f2f0255d9d021ad4e87fd5a6..870a1126cb277d4ec5319639f1213baeac400fd2 100644
Binary files a/screenshots/devices/billQuery.gif and b/screenshots/devices/billQuery.gif differ