A subgraph to index data from MACI protocol to serve as data layer for frontend integration
When I first joined the hackathon, I would like to build a frontend to integrate with MACI contract to manage voting rounds and all the functionality of the MACI protocol, but It's quite hard to retrieve the data directly in the contracts, manage the state transition from any events emitted from the contracts, and doing so is also not efficient in term of performance in the frontend.
Then, I decided to build a data layer for every frontend developers can be build on top of the subgraph, so they can focus mainly on the integration with the protocol and fetch all of required data from a single Graphql endpoint. It's nothing quite innovative or fancy solution, but it helps developers a lot to quickly bootstrap their project, and not overwhelming on handling different sources of data.
This project made purely from the graph protocol - the main ingredient, and a few toppings - some configurations, scripts from "semaphore subgraph", custom events and calls handler, and docker compose file for easy bootstrap the graph node in the local machine, and of course some love and contribution to the protocol, which I created PR at https://github.com/privacy-scaling-explorations/maci/pull/1203