This is a template for Workshop Students Project Submissions
- Do not rename the
uiandmovefolders - Do not edit the test files
- All tests must pass for successful deployment
- Click
Use this templateand create a new repository - Name it:
<YOUR-NAME>-Challenge(e.g.,AliErcanOzgokce-Challenge) - Make sure the repository is Public
- Clone the repository:
git clone <YOUR-REPO-URL> cd <YOUR-REPO-NAME>
- Read and complete the STUDENT_GUIDE.md
- Implement all TODO items in both smart contracts and frontend
- Ensure all tests pass
# Build smart contracts
cd move
sui move build
sui move test
# Build frontend
cd ../ui
npm install
npm run buildIn your repository, go to Settings → Pages → Source, and change it from "Deploy from a branch" to "GitHub Actions"
git add .
git commit -m "Complete all the TODOs"
git push origin mainOnce you push your changes to the main branch:
-
GitHub Actions will automatically:
- Build and test your smart contracts
- Build your frontend application
- Deploy to GitHub Pages
-
Your app will be live at:
https://<YOUR-USERNAME>.github.io/<YOUR-REPO-NAME>/ -
Monitor deployment:
- Go to your repository's
Actionstab - Watch the build and deployment progress
- Check the
deployjob for the live URL
- Go to your repository's
# Start frontend development server
cd ui
npm install
npm run dev# Build contracts
cd move
sui move build
# Run tests
sui move test
# Deploy to testnet
sui client publishIf you're unable to see the admin panels in your deployed application, it means your wallet address doesn't have the AdminCap. To resolve this issue, you need to use the address that published the package.
First, check your available wallet addresses:
sui client addressesThis will display all your wallet addresses. Look for the one marked with * (active address) that was probably used for deploying your package.
To use your wallet for admin operations, you'll need to export your private key:
sui keytool export --key-identity <YOUR-ALIAS>Replace <YOUR-ALIAS> with the alias of your wallet (e.g., condescending-cymophane).
Example output:
╭────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────╮
│ exportedPrivateKey │ suiprivkey1qr9xs5z77q6v8f5cumgcas0y3qavqch2x0lqvdnduqy49x0yun2k703zqwv │
│ key │ ╭─────────────────┬──────────────────────────────────────────────────────────────────────╮ │
│ │ │ alias │ condescending-cymophane │ │
│ │ │ suiAddress │ 0xa11070a3877b77355a0afbc402559cae7501c666819f05491f0337016c219366 │ │
│ │ │ publicBase64Key │ ADHRP+/iykiPas83db9JY2DcfNJbhrpdIKjGGzQIO39L │ │
│ │ │ keyScheme │ ed25519 │ │
│ │ │ flag │ 0 │ │
│ │ │ peerId │ 31d13fefe2ca488f6acf3775bf496360dc7cd25b86ba5d20a8c61b34083b7f4b │ │
│ │ ╰─────────────────┴──────────────────────────────────────────────────────────────────────╯ │
╰────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────╯
In your deployed application:
- Click the "Connect Wallet" button
- Import your wallet using the private key you exported
- The admin panels should now be visible
Your project is complete when:
- ✅ All smart contract tests pass
- ✅ All TODO items are implemented
- ✅ Frontend builds without errors
- ✅ App is successfully deployed to GitHub Pages
- ✅ All features work as expected