semaphore icon indicating copy to clipboard operation
semaphore copied to clipboard

Development - Build a project with just HTML, CSS, TS Semaphore Project

Open aguzmant103 opened this issue 1 year ago • 7 comments

Sometimes Semaphore is mistakenly thought to be only for web3 (Ethereum) or with a specific front-end framework (i.e. React).

Create a simple application that just uses Semaphore with "pure" HTML, CSS, TypeScript.

aguzmant103 avatar Jul 24 '23 19:07 aguzmant103

Working on this issue.

nikitakent avatar Oct 11 '23 08:10 nikitakent

@vplasencia I'd like to take on this issue but I need a little more description, is it just the landing page that should be written in HTML, CSS, JavaScript?

auleki avatar Jul 01 '24 09:07 auleki

@nikitakent It seems you have built something already, haven't you? @vplasencia would https://github.com/nikitakent/semaphore-court-app close this issue (didn't try to run it or review it in details)

sripwoud avatar Jul 02 '24 07:07 sripwoud

Hi @sripwoud - merkle trees used in the semaphore library need some kind of storage solution, which - to my knowledge -, is not well-supported by a vanilla web application. We'd need to build some custom TS capability for us to convert the merkle tree to a JSON and retrieve the data back as a merkle tree structure so we can perform validation etc. This new resource may help.

Once we have solved this merkle tree storage problem, the application can be finalised and we can close this issue.

@auleki, if you are still interested, I can guide you through the storage problem in more detail and/or work together on the issue, I have some time available. Please let me know.

nikitakent avatar Jul 05 '24 08:07 nikitakent

Hey @nikitakent, are you using on-chain groups? If so, you don't need to store Merkle trees.

cedoor avatar Jul 09 '24 10:07 cedoor

Hey @cedoor. Yes, that would be the easy solution. But - and please correct me if I am mistaken - wouldn't using an on-chain functionality defeat the purpose of this project/issue?

nikitakent avatar Jul 10 '24 01:07 nikitakent

Hey @cedoor. Yes, that would be the easy solution. But - and please correct me if I am mistaken - wouldn't using an on-chain functionality defeat the purpose of this project/issue?

I read the description again. Yes, you're right, I think this task is supposed to be about a web2 app.

You could just save the list of members of 1 or more groups in a db (like Mongo) and then when the app starts you could create the groups on the fly with @semaphore-protocol/group by retrieving the list of members and passing it as a parameter in the constructor. How does it sound?

cedoor avatar Jul 10 '24 09:07 cedoor