Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUIDL '22] Rally #2

Open
naomiHauret opened this issue Oct 23, 2022 · 4 comments
Open

[BUIDL '22] Rally #2

naomiHauret opened this issue Oct 23, 2022 · 4 comments

Comments

@naomiHauret
Copy link

naomiHauret commented Oct 23, 2022

Rally

Name of Project: Rally

Proposer: @naomiHauret

Do you agree to Encode Club's Terms and Conditions?: Yes

Do you agree to the grant process outlined by WBW3?: Yes

Project Description

Social audio applications are platforms where users interact with their voice in real time (for instance Spotify Live, Discord Stage, Zoom, Twitter Space...). Currently, web3 communities rely heavily on those platforms for both their day-to-day communication and important one-time events. The problem: Social audio apps don’t offer the best user experience possible to web3 communities. All current social audio apps lack of one of the following features :

  • Access-control flexibility and customization: fine-tuning access to live discussions (for token holders for example) and/or recordings is impossible.
  • Accessibility: using a new platform requires to recreate a profile, follow different profiles, join groups, wait to be accepted in the group, follow topics... which is time consuming, and can be a blocker for certain community members, leaving a portion of the community out of the loop
  • Discoverability: finding live discussions and/or recordings is difficult.
  • Privacy, security and anonymity: current platforms track and sell user data, unbeknownst to said user ; joining live audio as an anonymous user isn't always an option either
  • Monetization: platforms don't necessarily offer a way to creators to monetize their recordings/rooms
  • Interoperability: announcing live chats and/or sharing recordings hosted on other platforms like Anchor, Apple/Google podcast, Spotify… is impossible, as current platforms try to lock-in users in their platforms

This is why we want to build Rally, the go to social audio app for DAOs and web3 enthusiasts when they want to make announcements, learn, discuss, debate, share, or just chill together.

Rally will be a web application at the cross-road of web2 and web3, a social audio platform that will not only allow users to create live audio chats, but also easily onboard entire communities, and provide users a secure online experience where they are in total control of what they publish, who can access it, how, and when.

Tech Stack

  • Solidity: Smart contracts for audio chat creation
  • Livekit: Infrastructure for real-time audio chats
  • Lens Protocol: Decentralized social graph ; used to publish recordings, highlights and other publication related to audio chats ; display user profiles (for Lens users)
  • Lit Protocol: Access control protocol ; used to gate access to rooms and publications ;
  • Guild API : Access control and interoperability ; Platformless membership
  • Web3 storage: Storage ; Used to store audio chats metadata
  • Bundlr: Storage ; used to store recordings
  • The Graph: Indexer
  • Polygon/Mumbai: blockchain we will build on
  • NextJS: Meta framework
  • Rainbowkit: Wallet UI built on React/wagmi
  • tRPC : end-to-end type safe API
  • MySQL/Planetscale : database to store the user's topics of interest (other possibility relying on a more decentralized technology: Ceramic, Warp, EXM)
  • Prisma: TypeScript ORM
  • Vercel: Front-end infrastructure

Development Roadmap

Milestone 1

  • Summary: User experience research ; establish a fact (current social audio apps don't work for web3 communities) ; gain insights (how could we improve upon a classic social audio app ? what are the blockers ? what features should be keep/skip ?) ; reach conclusions that will guide us in what we will build ("Security and privacy should be our main focus; therefore we should work more specifically on implement anonymous rooms and on using a service that offers E2E encryption")
  • Team: Naomi Hauret ; Timotej Gerzelj
  • Budget: 1390 $
  • Duration: 2 weeks
Number Deliverable Specification
1. Survey on the usage of social audio apps by web3 enthusiasts and web3 communities A survey used to gather information on if and how web3 users use social audio apps as a single users, if they find them useful or not, what are their pain points, what they like, what they would want to see, and the same questions but within a web3 community
2. Product requirements document A document that defines the requirements of a Rally. It describes extensively its purpose, features, functionality, and behavior. It serves as a guide for business and technical teams to help build, launch, or market the product.

Milestone 2

  • Summary: Creating an audio chat on the blockchain. A connected user should be able to create an audio chat, see its created audio chats in a dashboard, and users should be able to display the page of the audio chat. An audio chat is represented by the following information :

    • title
    • state (PLANNED, CANCELLED, LIVE, FINISHED)
    • description
    • A date and time at which the event will start
    • Co-hosts
    • Tags
    • Image
    • If the live will be recorded or not
    • Access-control : rules that will determine who can access this event.
  • Team: Naomi Hauret ; Timotej Gerželj

  • Budget: 1390 $

  • Duration: 2 weeks

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

Milestone 3

  • Summary: Updating and deleting an audio chat that was created on the blockchain. The creator of an audio chat should be able to update the audio chat information, update the audio chat state, and delete it.

  • Team: Naomi Hauret ; Timotej Gerželj

  • Budget: 695 $

  • Duration: 1 week

Number Deliverable Specification
1. 2nd version of the smart contract deployed to Mumbai testnet A smart contract that will allow the creator of an audio chat to: update its metadata, update its state, or delete the audio chat
2. Front-end: page "Update audio chat" As the creator of an audio chat, I should be able to update its information/state by using a form.
3. Front-end: modal "Delete audio chat" As the creator of an audio chat, I should be able to delete an audio chat from the audio chat page or from the list of audio chats I created via a modal with a button "Delete this audio chat".

Milestone 4

  • Summary: Live audio chat - Creators of audio chats should be able to open and close an audio chats ; speakers should be able to discuss live; allowed connected users should be able to join/leave an audio chat ; moderators should be able to toggle the role of a listener to speaker and kick out/mute speakers and/or participants.
  • Team: Naomi Hauret ; Timotej Gerželj
  • Budget: 1390 $
  • Duration: 2 weeks
Number Deliverable Specification
1. Front-end: page "Audio chat" * On the page of an audio chat with the state PLANNED, its creator should be able to open the room to other participants by clicking on a button "Start live"
2. Front-end: page "Audio chat" / other users On the page of an audio chat with the state PLANNED or LIVE, unallowed users should see a message You can't access this chat ; Allowed users should see a button Join chat and an indication Your microphone will be muted when you join the room. Users should be able to indicate if they want to use a pseudonym, or if they want to use their Lens profile.
3. Front-end: page "Audio chat" On the page of an audio chat with the state LIVE, allowed users should see the list of speakers and should be able to hear the ongoing live conversation
4. Front-end: page "Audio chat" / listeners On the page of an audio chat with the state LIVE, allowed users with the role listener should be able to raise their hand to ask to be granted the role of speaker
5. Front-end: page "Audio chat" / moderators On the page of an audio chat with the state LIVE, allowed users with the role moderator should be able to assign the role speaker to a user with the role listener in this room and listener to a speaker ; moderator should also be able to mute a speaker and kick any other user from the room
6. Front-end: page "Audio chat" / allowed users with the role speaker and moderator users with the role speaker and moderator
should be able to control mute/unmute themselves
6. Front-end: page "Audio chat" * On the page of an audio chat with the state LIVE, its creator should be able to close the room. Closing the room will finish the live session and kick out all users from the room

Milestone 5

  • Summary: Onboarding - On their first visit, connected users should pick what topics interest them. Users should be able to update this at any moment. Users with a Lens profile should be able to display their profile info. Users that belong to a Guild should be able to display their guilds.
  • Team: Naomi Hauret ; Timotej Gerželj
  • Budget: 695 $
  • Duration: 1 week
Number Deliverable Specification
1. Page "Profile" Connected users should pick what topics interest them. Users should be able to update this at any moment. This will be stored in a MySQL database and encrypted using Lit Protocol so that only the user will be allowed to see this data decrypted. Other possible implementation would rely on Ceramic OR Warp OR EXM

Milestone 6

  • Summary: Indexing/Discovery - Users should be able see in priority upcoming and live audio chats that match their preferences/topics of interest. Users should also be able to search live audio chats.
  • Team: Naomi Hauret ; Timotej Gerželj
  • Budget: 1390 $
  • Duration: 2 weeks
Number Deliverable Specification
1. Subgraph Deployed subgraph that will allow the user to query audio chats by: topic, date,
2. Front-end: Home page Users should be able to see public live events on the home page and search events by hashtag/keyword (= query the subgraph)
3. Front-end: Home page Users should be able to see events that match their interests in priority in the home page

Milestone 7

  • Summary: Publish recordings - Creators should be able to push the recording of an audio room they created. Allowed users should be able to access this recording, play it and comment on it. This feature will only be available for Lens users.
  • Team: Naomi Hauret ; Timotej Gerželj
  • Budget: 695 $
  • Duration: 1 week
Number Deliverable Specification
1. Front-end : page publish recording /audio-chat/[idAudioChat]/recording/new ; Creators with the should be able to publish a recording associated to the audio chat and set the rules who can access this recording
2. Front-end: page /audio-chat/[idAudioChat]/recording/[idRecording] ; Allowed users should be able to access the recording of an audio chat, play it and pause it
3. Front-end: page /audio-chat/[idAudioChat]/recording/[idRecording] ; Allowed users should be able to comment on the recording of an audio chat

Total Budget Requested

7645 $ USD

Project Links

Knowledge Base
GitHub organization
GitHub repository
Twitter

Website (alpha)

Team Members

@naomiHauret
Copy link
Author

naomiHauret commented Nov 7, 2022

@naomiHauret
Copy link
Author

naomiHauret commented Nov 7, 2022

Milestone 2: reached
rallydotfm/rally#1
Video

@naomiHauret
Copy link
Author

naomiHauret commented Nov 11, 2022

Milestone 3: reached
rallydotfm/rally#4
Video

@naomiHauret
Copy link
Author

Milestone 4: reached
rallydotfm/rally#9
Rally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant