AlloIRL: Statement of Work
TLDR
What: A web app to facilitate an in person Allo vote experience with minimal crypto onboarding.
Participants are invited to sign up via email oauth, scan the nfc / qr codes at the tables of a grantee, specify a number of votes, and press submit to save the score to offchain database. They can also see their past contributions & remaining votes.
After the event, the event host exports a CSV and uploads to Allo’s import flow, disbursement happens from that point onwards with relevant pool/mechanism/chain.
When: Live events Feb 21, 23, 26, 27, 2025
Must-Have Features: User signup, project viewing, voting, CSV export
Tech Stack: React (Next.js), Supabase, PostgreSQL (suggestions)
Scale: Support 200 concurrent users
Key Dates
-
Wireframes drawn by Jon Bo: Jan 10
-
Design: Jan 10 - xyz
-
MVP & feedback: Jan 31, 2025
-
Testing: Feb 3 - Feb 14
-
Live Events: Feb 21, 23, & 27
Choreography / Experience Overview
Pre Event:
- Participants pre-register for event on Luma/Partiful and list of emails / phone numbers is used as an allowlist for verification
- Event host creates Allo round for event.
- Grantees create Gitcoin projects.
- Rounds are pulled down into alloirl web app and assigned unique IDs.
- QR codes or NFC cards are assigned unique urls (ie alloirl.fun/project/14) and given to each project (that participants will scan with their phones).
During event:
- Participants sign up to a web app with name + email. They’re given a starter pack of 10 credits on their account.
- As they walk up to a table, they pull out their phone and scan the NFC card / QR code on the team’s table. Their browser takes them to alloirl.fun/project/14 and they’re given the option to select how many votes to give to this project. They enter an amount and submit a web request.
- No onchain/tx things happening at this step, just a database update.
- This should gracefully handle a signup intercept if they haven’t already signed up.
- If they’re in the audience / away from tables, they can see a projects list and go to the same url and follow the unified interface flow.
- A TV is loaded up to a leaderboard page with live polling of projects and how many votes they are each allocated, sorted by most / whatever other criteria is interesting.
Post event:
- Admin page allows CSV export of grants + amounts to be uploaded to Allo
- CSV is uploaded to Allo, Allow handles disbursement from that point onwards
Features
-
Authentication
- Email signup with allowlist
- Basic profile (name, photo)
- Password reset
-
Voting
- View projects (list + individual pages)
- Scan QR/NFC to visit project
- Allocate votes from credit balance
- Live leaderboard (5s refresh)
- Credit top-up via Stripe\
-
Admin dashboard
- Link gitcoin rounds & import projects metadata
- Export results as CSV for Gitcoin
- Calculate quadratic funding distribution
Technical Specs
- Mobile web app (iOS/Android, 5yr device support)
- Sub-2s response time on LTE/WiFi
- QR code generation
- NFC URL reading
- Staging environment for testing
Success Criteria
- Passes user acceptance testing
- Handles 200 concurrent users
- Successfully exports to Allo format
- All must-have features working
Error Handling
- Duplicate votes prevented via credit deduction
- Insufficient credits → error modal
- Duplicate email → offer password reset
Implementation / Facilitation
- Dev: Woven Web (Jon & AG)
- Design: Cici