dossinstitute / sidequest

Apache License 2.0
0 stars 0 forks source link

[EPIC] Side Quest Solidity Contract #1

Open wvwatson opened 3 months ago

wvwatson commented 3 months ago

[EPIC] Event Quest

Description

This is the outline of the event quest project

Every section here should be a sub ticket with its own acceptance criteria

Sub tickets

  1. Quest Definition and Setup:
    • Ticket: #2
    • The contract should allow an admin to create an "Event Ambassador Quest" with the following parameters:
      • Event ID
      • Start and end dates
      • Number of required interactions (at least three)
      • Reward details (NFT or token)
  2. User Registration and Participation
    • Ticket: #3
    • Users must be able to register for the quest by providing their wallet address.
    • The contract should track registered users and their interaction status.
  3. Interaction Verification
    • Ticket: #5
    • Interactions are verified through QR code scans.
    • The contract should provide a function for users to submit a QR code scan (interaction).
    • Each interaction must include the event ID and the attendee’s wallet address.
  4. Interaction Tracking
    • Ticket #12
    • The contract must track the number of unique interactions per user.
    • Only unique QR code scans should be counted towards the user's progress.
    • Ensure that each QR code can only be used once per attendee.
  5. Quest Completion Check
    • Ticket: #6
    • The contract should automatically check if a user has completed the required number of interactions.
    • Once the requirement is met, mark the quest as completed for the user.
  6. Reward Distribution
    • Ticket: #7
    • Upon quest completion, the contract should automatically distribute the specified reward (NFT or token) to the user's wallet address.
    • Ensure that rewards are distributed only once per user upon completion of the quest.
  7. Security and Validations
    • Ticket: #8
    • Ensure that the contract only accepts valid QR code scans linked to the event.
    • Validate the uniqueness of QR code scans.
    • Prevent any re-entrancy attacks or other security vulnerabilities.
  8. Event Admin Functions
    • Admins should be able to:
      • Ticket: #10
      • Create new quests
      • Set and update event details
      • Monitor user progress and interactions
      • Distribute rewards manually if necessary
  9. Testing and Deployment
    • Ticket #11
    • The contract should be thoroughly tested on a testnet before deployment to the mainnet.
    • Provide comprehensive unit tests to cover all functionality and edge cases.
  10. 9

  11. 13