{"id":13525168,"url":"https://github.com/Talentum-id/formyfi","last_synced_at":"2025-04-01T04:31:20.908Z","repository":{"id":223900925,"uuid":"730322252","full_name":"Talentum-id/formyfi","owner":"Talentum-id","description":"Fully on-chain decentralized Q\u0026A Application","archived":false,"fork":false,"pushed_at":"2024-10-29T10:41:23.000Z","size":3611,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-10-29T12:39:33.500Z","etag":null,"topics":["internet-computer","motoko","vuejs"],"latest_commit_sha":null,"homepage":"https://formyfi.io/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Talentum-id.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-11T17:10:12.000Z","updated_at":"2024-10-29T10:42:06.000Z","dependencies_parsed_at":"2024-05-22T21:40:32.276Z","dependency_job_id":"5a4c91d1-b21c-4a0a-9a6b-408522c984d0","html_url":"https://github.com/Talentum-id/formyfi","commit_stats":null,"previous_names":["talentum-id/formify","talentum-id/formyfi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Talentum-id%2Fformyfi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Talentum-id%2Fformyfi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Talentum-id%2Fformyfi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Talentum-id%2Fformyfi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Talentum-id","download_url":"https://codeload.github.com/Talentum-id/formyfi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246586085,"owners_count":20801024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["internet-computer","motoko","vuejs"],"created_at":"2024-08-01T06:01:16.534Z","updated_at":"2025-04-01T04:31:20.902Z","avatar_url":"https://github.com/Talentum-id.png","language":"Vue","funding_links":[],"categories":["Social Applications"],"sub_categories":["Protocols"],"readme":"# Formyfi\r\n\r\nFormyfi is a robust Q\u0026A application that runs entirely on the Internet Computer blockchain.\r\n\r\n## Prerequisites\r\n\r\nIf you are using Windows, please ensure you\r\nhave \u003ca href=\"https://learn.microsoft.com/en-us/windows/wsl/install\" target=\"_blank\"\u003eWSL\u003c/a\u003e (Windows Subsystem for\r\nLinux) installed, as all commands should be executed in the WSL terminal.\r\n\r\nBefore getting started, make sure you have the following tools installed:\r\n\r\n#### DFX\r\n\r\nTo install DFX, run the following command:\r\n\r\n```bash\r\nsh -ci \"$(curl -fsSL https://internetcomputer.org/install.sh)\"\r\n```\r\n\r\n#### NPM\r\n\r\nDownload and install NPM from [https://nodejs.org/en/download](https://nodejs.org/en/download).\r\n\r\n#### Web2\r\n\r\nThere is some Web2 functionality implemented in this project. To see it, clone the repository with the following\r\ncommand:\r\n\r\n   ```bash\r\n   git clone \u003cpath_to_this_repo\u003e \u003cyour_local_dir\u003e --recursive\r\n   ```\r\n\r\n---\r\n\r\n## Running the Project\r\n\r\n### I. Running Manually\r\n\r\n1. Create an .env file by copying values from .env.example and setting appropriate values.\r\n2. Navigate to the project directory and start DFX:\r\n   ```bash\r\n   dfx start --clean --background\r\n   ```\r\n\r\n   \u003e **Note:** If you encounter an error, open dfx.json, remove \"local\" from \"networks\", and start DFX with:\r\n\r\n   ```bash\r\n   dfx start --clean --background --host 127.0.0.1:4943\r\n   ```\r\n\r\n3. Install project dependencies:\r\n\r\n   ```bash\r\n   npm install\r\n   ```\r\n\r\n4. Deploy the canisters:\r\n\r\n   First, create vetkd_system_api canister with hardcoded ID:\r\n\r\n   ```bash\r\n   dfx canister create vetkd_system_api --specified-id h6gim-oiaaa-aaaao-a3siq-cai\r\n   ```\r\n\r\n   Second, create the remaining canisters:\r\n   ```bash\r\n   dfx canister create --all\r\n   ```\r\n\r\n   Third, deploy `ic_siwe_provider` and `ic_siws_provider` canisters with runtime arguments:\r\n\r\n   ```bash\r\n   dfx deploy ic_siwe_provider --argument $'(\r\n    record {\r\n        domain = \"127.0.0.1\";\r\n        uri = \"http://127.0.0.1:3000\";\r\n        salt = \"WjcIMw9vpXTcpSD/uGtOZmLLGbYCKVe6njceNLqKjt4=\";\r\n        chain_id = opt 1;\r\n        scheme = opt \"http\";\r\n        statement = opt \"Login to the app\";\r\n        sign_in_expires_in = opt 2592000000000000;\r\n        session_expires_in = opt 2592000000000000;\r\n        targets = opt vec {\r\n            \"'$(dfx canister id ic_siwe_provider)'\";\r\n            \"'$(dfx canister id assets)'\";\r\n        };\r\n    }\r\n   )'\r\n   dfx deploy ic_siws_provider --argument $'(\r\n    record {\r\n      domain = \"127.0.0.1\";\r\n      uri = \"http://127.0.0.1:3000\";\r\n      salt = \"WjcIMw9vpXTcpSD/uGtOZmLLGbYCKVe6njceNLqKjt4=\";\r\n      chain_id = opt \"mainnet\"; \r\n      scheme = opt \"http\";\r\n      statement = opt \"Login to the app\";\r\n      sign_in_expires_in = opt 2592000000000000;\r\n      session_expires_in = opt 2592000000000000;\r\n      targets = opt vec {\r\n        \"'$(dfx canister id ic_siws_provider)'\";\r\n        \"'$(dfx canister id assets)'\";\r\n      };\r\n    }\r\n   )'\r\n   ```\r\n\r\n   Fourth, deploy canisters and generate:\r\n   ```bash\r\n   dfx deploy internet_identity --argument '(null)'\r\n   dfx generate\r\n   dfx deploy \u0026\u0026 dfx generate\r\n   ```\r\n\r\n   After deployment, you’ll receive URIs for the canisters. Open the URI for the assets canister to view the local DApp\r\n   in your browser.\r\n\r\n5. If you are developing the front-end of the DApp and want to avoid running `dfx deploy` every time you make changes,\r\n   run:\r\n   ```bash\r\n   npm run dev\r\n   ```\r\n   Access the DApp via the link provided by the Vite dev server.\r\n\r\n## I. Stopping Manually\r\n\r\n1. Ensure \"local\" is removed from the \"networks\" section in dfx.json if you did so during deployment, and then run:\r\n   ```bash\r\n   dfx stop\r\n   ```\r\n2. If you removed \"local\" earlier, add it back to the \"networks\" section in dfx.json.\r\n\r\n***\r\n\r\n## II. Automatic manual\r\n\r\n1. To start the project with all commands being called automatically, run:\r\n\r\n   ```bash\r\n   make start\r\n   ```\r\n\r\n2. In case you started the project with Automatic Manual, you have to use following command to stop it:\r\n\r\n   ```bash\r\n   make stop\r\n   ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTalentum-id%2Fformyfi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTalentum-id%2Fformyfi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTalentum-id%2Fformyfi/lists"}