For the frontend application, we used ReactJS with TypeScript and Ant Design visual components. We prepared all the typical user management pages allowing users to create accounts, log in, recover accounts and verify their email.
The next step was to prepare a token creation form, which allowed logged in users to familiarize themselves with possible token options such as type, decimals, vesting and sale configuration. They could then select settings that best fit their scenario, and deploy the contract generated accordingly to the blockchain network. This required an integration of a React application with popular wallets so that users could use their browser extension (Metamask) or mobile application (WalletConnect) to approve blockchain transactions generated by the app.
The final step was the creation of a dashboard page, where the user can track state and statistics of his token, as well as interact with Smart Contracts that handle it. Statistics displayed in multiple tables were fetched from the backend, and all contract interactions used an ethers library to call the methods of deployed token contracts.