Washkart is a dapp that help users to get their clothes (laundry) washed just by clicking few buttons from the comfort of their homes.
Demo link: https://washkart.vercel.app/
App features:
- Role-based access control (customer, admin).
- Free pickup and delivery.
- Status updates (confirmed, in progress, delivered, canceled).
- Full refunds for canceled orders.
- Customer feedback form.
- Fast, secure, and reliable.
If you haven't installed dependencies during setup:
npm run deps-install
Build and deploy your contract to TestNet with a temporary dev account:
npm run deploy
Test your contract:
npm test
If you have a frontend, run npm start
. This will run a dev server.
- The smart-contract code lives in the
/contract
folder. See the README there for more info. In blockchain apps the smart contract is the "backend" of your app. - The frontend code lives in the
/frontend
folder./frontend/index.html
is a great place to start exploring. Note that it loads in/frontend/index.js
, this is your entrypoint to learn how the frontend connects to the NEAR blockchain. - Test your contract:
npm test
, this will run the tests inintegration-tests
directory.
Every smart contract in NEAR has its own associated account.
When you run npm run deploy
, your smart contract gets deployed to the live NEAR TestNet with a temporary dev account.
When you're ready to make it permanent, here's how:
near-cli is a command line interface (CLI) for interacting with the NEAR blockchain. It was installed to the local node_modules
folder when you ran npm install
, but for best ergonomics you may want to install it globally:
npm install --global near-cli
Or, if you'd rather use the locally-installed version, you can prefix all near
commands with npx
Ensure that it's installed with near --version
(or npx near --version
)
Each account on NEAR can have at most one contract deployed to it. If you've already created an account such as your-name.testnet
, you can deploy your contract to washkart.your-name.testnet
. Assuming you've already created an account on NEAR Wallet, here's how to create washkart.your-name.testnet
:
-
Authorize NEAR CLI, following the commands it gives you:
near login
-
Create a subaccount (replace
YOUR-NAME
below with your actual account name):near create-account washkart.YOUR-NAME.testnet --masterAccount YOUR-NAME.testnet
Use the CLI to deploy the contract to TestNet with your account ID.
Replace PATH_TO_WASM_FILE
with the wasm
that was generated in contract
build directory.
near deploy --accountId washkart.YOUR-NAME.testnet --wasmFile ./contract/build/release/washkart.wasm --initFunction init --initArgs '{"admin_account_id": "YOUR-NAME.testnet"}'
Modify the line in src/config.js
that sets the account name of the contract. Set it to the account id you used above.
const CONTRACT_NAME = process.env.CONTRACT_NAME || 'washkart.YOUR-NAME.testnet'
On Windows, if you're seeing an error containing EPERM
it may be related to spaces in your path. Please see this issue for more details.