MS-2 : Registering an audio chat on chain
Closed this issue · 1 comments
naomiHauret commented
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...
- Go to home page
- I should see "Create audio chat"
- If I click on "Create audio chat"
- Then the page URL should change to
/dashboard/audio-chat/new
- 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
- Text field
- Define access control based on token holding
- If I click on "Create audio chat"
- Then I should first sign a message from Lit to encrypt the data
- 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)
- Then I should see a transaction request in my wallet
- Then after signing the transaction, I should see a spinner
- 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
- Go to audio chat page
audio-chats/:id
- Then I should see a loader
- Then I should see the audio chat data
Dashboard
- Go to
/dashboard/audio-chats
- Then I should see a loader
- Then I should see the list of audio chats I created (name, date of creation, their status, a button to their page)
naomiHauret commented
First version of the contract address 0x3f590a7d2DbA814B97D6087620EFf6113d81F6c4