rallydotfm/rally

MS-2 : Registering an audio chat on chain

Closed this issue · 1 comments

Milestone 2: registering an audio chat on chain

  • As a connected user, I should be able to create an audio chat on chain
  • As a connected user, I should be able to see my created audio chats in my personal dashboard
  • As a user, I should be able to display the page of the audio chat

An audio chat is represented by the following information :

  • A title
  • A state (PLANNED, CANCELLED, LIVE, FINISHED)
  • A description
  • A date and time at which the event will start
  • A list of co-hosts
  • A list of tags
  • An image URL
  • If the live will be recorded or not
  • Access-control : object that contains the rules that will determine who can access this audio chat
Number Deliverable Specification
1. First version of the smart contract deployed to Mumbai testnet A smart contract that will allow users to create audio chats on the blockchain.
2. Front-end: connect wallet UI As a user, when I access the website, I should be able to connect my wallet
3. Front-end: page "Create audio chat" As a user with their wallet connected to Mumbai testnet, I should be able to create an audio chat on the blockchain by using a form. The data of this audio chat will be stored in a JSON that will be uploaded to IPFS via web3.storage ; the CID will be stored in the blockchain.
4. Front-end: page "Audio chat" As a user, I should be able to display the information of an audio chat in the audio chat page
5. Front-end: page "Profile" As a connected user, I should be able to display the audio chats I created

Creating an audio chat on chain

Smart contract

  • create AudioChat
  • Retrieve AudioChat by id
  • Retrieve AudioChat by creator
  • Retrieve AudioChat list WHERE status = PLANNED | LIVE | ONGOING | FINISHED | CANCELLED

Scenarios

As a connected user...

  1. Go to home page
  2. I should see "Create audio chat"
  3. If I click on "Create audio chat"
  4. Then the page URL should change to /dashboard/audio-chat/new
  5. I should see a form that contains the following :
    SECTION 1
    • Text field title (The title of your room) (wording TBD)
    • Long text field description (A few lines about your room) (wording TBD)
    • Date time field Starts at -optional: if no value is entered, it will fallback to the current timestamp-
    • Text fields co-host N
    • Long text tags
    • File input Image
    • checkbox Will be recorded
      SECTION 2
      Access control
  • Define access control based on token holding
  1. If I click on "Create audio chat"
  2. Then I should first sign a message from Lit to encrypt the data
  3. Then I should see a modal "Uploading your files to IPFS, please wait and don't leave this page..."
    • It should upload the image first
    • Then it should upload the JSON file containing the data (public, encrypted, access control)
  4. Then I should see a transaction request in my wallet
  5. Then after signing the transaction, I should see a spinner
  6. Then, when the transaction is a success, I should see the transaction hash and a link to my newly created audio chat

Created audio chat page

  1. Go to audio chat page audio-chats/:id
  2. Then I should see a loader
  3. Then I should see the audio chat data

Dashboard

  1. Go to /dashboard/audio-chats
  2. Then I should see a loader
  3. Then I should see the list of audio chats I created (name, date of creation, their status, a button to their page)

First version of the contract address 0x3f590a7d2DbA814B97D6087620EFf6113d81F6c4