Skip to content

A privacy application for AMAs, built with Semaphore.

License

Notifications You must be signed in to change notification settings

violetwee/zkAsk

Repository files navigation

zku.one Final Project : zkAsk

zkAsk allows a host to create an AMA session where the audience can join and ask questions anonymously, creating an open and safe environment. Audiences can also vote anonymously for questions to be answered (community moderation via anonymous voting).

It leverages on Semaphore and zk-proofs to preserve the user’s identity.

This project is inspired by Koh Weijie's Semaphore presentation at Devcon 5 - https://archive.devcon.org/archive/watch/5/hands-on-applications-of-zero-knowledge-signalling/?playlist=Devcon%205&tab=YouTube

Features

Host

  • create AMA sessions which may be public or secured with an access code (ie. audience would need an access code to join the AMA session - useful for study groups where only students can join, or corporate groups where only employees can join)
  • update status of the AMA session
    • start: audience may join and post questions
    • pause: audience may join but cannot post questions
    • resume: audience may post questions
    • end: session has ended
  • list created AMA sessions

Audience/Participant

  • list AMA sessions that are paused/active (ie. ready for audiences to join)
  • join a public session or enter access code to join a private AMA session
  • post a question to an AMA session anonymously
  • vote on other audience's questions anonymously

Testing

yarn test

Setup database (mysql)

Create two tables: ama_sessions and ama_questions. Run the create scripts in /scripts folder.

Rename .env.example to .env and input the database connection properties.

Test with Frontend UI

  • yarn install to install all dependencies
  • yarn dev to start a local node. Import a few of the test accounts into Metamask for testing purposes.
  • yarn deploy --network localhost to deploy the smart contracts to the local node.

Copy the AMA contract address to lib/config.json

Then, browse to http://localhost:3000 to access the frontend UI.

Deploy to Harmony Testnet

Run yarn deploy --network testnet

Project Resources

Project template is forked from Semaphore Boilerplate.

About

A privacy application for AMAs, built with Semaphore.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •