From 638cea344d3bcf5144bcd93d2853b2c05548ef14 Mon Sep 17 00:00:00 2001
From: thekiba
Date: Fri, 26 Jan 2024 16:20:14 +0400
Subject: [PATCH] docs: add installation and running instructions to README.md
---
README.md | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 144 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index ec84ec3..58a87f8 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,146 @@
-# Demo dapp with @tonconnect/ui-react
+# Demo dApp with @tonconnect/ui-react
-Try it out https://ton-connect.github.io/demo-dapp-with-wallet/
+This Demo dApp showcases the integration with @tonconnect/ui-react. Experience it live at [Demo dApp with Wallet](https://ton-connect.github.io/demo-dapp-with-wallet/).
-## Learn more about Ton Connect
-- https://docs.ton.org/develop/dapps/ton-connect/
-- https://github.com/ton-connect/sdk/tree/main/packages/ui
+## Learn More About Ton Connect
+
+To understand more about Ton Connect and how it enables blockchain functionalities in your applications, refer to the following resources:
+- Ton Connect Documentation: [https://docs.ton.org/develop/dapps/ton-connect/](https://docs.ton.org/develop/dapps/ton-connect/)
+- Ton Connect SDK and UI Library on GitHub: [https://github.com/ton-connect/sdk/tree/main/packages/ui](https://github.com/ton-connect/sdk/tree/main/packages/ui)
+
+## Installation
+
+### Project Dependencies
+
+Install the necessary packages for this project:
+
+```bash
+npm install
+```
+
+### ngrok or localtunnel (Optional)
+
+Choose either ngrok or localtunnel to expose your local server to the internet for testing in Telegram.
+
+#### ngrok Installation
+
+```bash
+npm install -g ngrok
+```
+
+ngrok Documentation: [https://ngrok.com/docs](https://ngrok.com/docs)
+
+#### localtunnel Installation
+
+```bash
+npm install -g localtunnel
+```
+
+LocalTunnel Documentation: [https://localtunnel.github.io/www/](https://localtunnel.github.io/www/)
+
+### Creating Telegram Mini Apps (Optional)
+
+1. Open [@BotFather](https://t.me/BotFather) in Telegram.
+2. Send the `/newbot` command to create a new bot.
+3. Follow the prompts to set up your bot, providing all necessary information.
+4. After the bot is created, send the `/newapp` command to BotFather.
+5. Select your bot from the list.
+6. Provide all the required information for your Mini App.
+
+
+### Returning to the Application (Optional)
+
+To return to the application after interacting with the wallet, you must specify a `twaReturnUrl` in `src/App.tsx`.
+
+Here's a concise guide:
+
+- **twaReturnUrl**: This is the return URL used by Telegram Web Apps. Set it to redirect users back to your application after wallet interaction. Example: `'https://t.me/WebAppWalletBot/myapp'`.
+
+Here is a sample configuration for specifying a return URL:
+
+```jsx
+
+```
+
+### Adding a Custom Wallet (Optional)
+
+To integrate a custom wallet into your application, adjust the `walletsListConfiguration` in `src/App.tsx`. Include your wallet details in `includeWallets` and specify `universalLink`.
+
+Here's a concise guide:
+
+- **universalLink**: This URL is used to open the wallet directly from a web link. It should link to your wallet's bot or app. Example: `'https://t.me/wallet/start'`.
+
+Here is a sample configuration for adding a custom wallet:
+
+```jsx
+
+```
+
+## Running the Application
+
+### Starting the Application
+
+To start the application, run:
+
+```bash
+npm dev
+```
+
+The application will be accessible at [http://localhost:5173](http://localhost:5173).
+
+### Exposing Your Local Server (Optional)
+
+#### Using ngrok
+
+```bash
+ngrok http 5173
+```
+
+#### Using localtunnel
+
+```bash
+lt --port 5173
+```
+
+After setting up ngrok or localtunnel, update your Telegram bot's configuration with the provided URL to ensure the bot points to your local development environment.
+
+### Updating Telegram Bot Configuration (Optional)
+
+#### Update the Menu Button URL in Telegram Bot
+
+1. Open [@BotFather](https://t.me/BotFather) in Telegram.
+2. Send the `/mybots` command and select your bot.
+3. Choose "Bot Settings" then "Menu Button" and finally "Configure menu button".
+4. Enter the ngrok or localtunnel URL as the new destination.
+
+#### Update Mini Apps URL in Telegram
+
+1. Open [@BotFather](https://t.me/BotFather) in Telegram.
+2. Send the `/myapps` command and select your Mini App.
+3. Choose "Edit Web App URL".
+4. Enter the ngrok or localtunnel URL as the new destination.