# TAZ & Semaphore DevCon Project * **Project:** Devcon experience to showcase Semaphore identity. ## Project Overview :page_facing_up: ### Overview Semaphore is a zero-knowledge protocol that allows you to cast a signal (for example, a vote or endorsement) as a provable group member without revealing your identity. Semaphore groups can be configured to allow only people with specific attributes to join. Since those attributes can ensure authenticity, Semaphore can also provide a sybil-resistance mechanism to authenticate users in your application. For more information about Semaphore, read our [Semaphore V2 announcement](https://medium.com/privacy-scaling-explorations/semaphore-v2-is-live-f263e9372579), or see our [documentation](https://semaphore.appliedzkp.org/docs/introduction). ### TAZ Project Details We are working on a cool experience at Devcon. We will provide cards, each of which will contain an invitation link that can be used to generate a Semaphore identity and join our Devcon VI Semaphore group. After Devcon, participants will have their card but the IDs will be burned. The Semaphore team will also leave with a POAP. More details on Semaphore can be found [here](https://hackmd.io/@cedoor/HkjIsEMJo#). ## Team :busts_in_silhouette: ### Team member * Name: Mark Roddy * Email: mroddy5280@gmail.com * Discord: Rowdy#2435 ### Team Website * TBD ### Team's experience Mark Roddy is a fullstack web3 engineer focused on creating innovative solutions. Detail-oriented with a background in design and user focused development, this allows him to create creative and efficient solutions to projects. Experience: 10 years of experience in the tech industry, ranging from higher education, consulting, and finance. Well-versed in FE Frameworks (React, Angular, Vue), GraphQL, Node, and Salesforce (APEX, Lightning Web Components, Aura components, VF Pages, etc) and Web3 technologies (Solidity, Web3.js, Ethers.js, Ganache, Truffle, Open Zepline, Hardhat, IPFS, etc). Mark made it in the finals at the 2022 ETH Denver Virtual Hackathon for a DAO Tooling project called [DoerDAO](https://www.ethdenver.com/eden2022-virtual-winners). Mark is currently contributing to [DAO Haus](https://daohaus.club/). ### Team Code Repos * [Github](https://github.com/DLRFC/taz-dapp-poc) ## Development Roadmap :nut_and_bolt: ### Overview * **Total Estimated Duration:** 1 Month * **Full-time equivalent (FTE):** 40 hours per week * **Total Costs:** $10,000 USD/USDC/DAI or Equivalent in Token ### Milestone 1 Frontend Improvements * **Estimated Duration:** 2 weeks * **FTE:** 1 * **Costs:** $5,000 * **Estimated delivery date**: 23 September 2022 | Due Date | Hours | Deliverables | Specification | | -------- | ----- | -------------- | ------------- | | 23 September 2022 | ~40 | <ul><li>Refactor/break out common components</li><li>Install ESLint</li><li>Install Prettier</li></ul> | Componentize and improve repository to follow best practices and adhear to dry standard. Including but not limited to inputs, buttons, etc and create wrapper for the app that includes header & footer. | | 23 September 2022 | ~20 | <ul><li>Install and implement Radix or HeadlessUI</li><li>Install ESLint</li><li>Install Prettier</li></ul> | Improve UI/UX and code formatting. One of our main goals is to provide the best possible developer experience. Radix Primitives provides a fully-typed API. All components share a similar API, creating a consistent and predictable experience. Common UI patterns like radio, checkbox, select, etc are well defined and most often only require styling. Install ESLint and possibly Prettier to enforce code quality. | | 23 September 2022 | ~10 | <ul><li>Create Component leveraging modal for errors</li><li>Create Hook (as needed)</li><li>Display formatted errors to user</li><li>Implement logger</li></ul> | Exception handling helps greatly when the code faces runtime errors. Handling exceptions properly will prevent the code from sudden termination and provide a human-readable context as to what causes the problem. | | 23 September 2022 | ~2-4 | <ul><li>Documentation</li><li>Update Read Me</li></ul> | Provide documentation in desired format and update READ ME to provide details around application, stack, and tools used. | ### Milestone 2 Testing & Typescript * **Estimated Duration:** 2 weeks * **FTE:** 1 * **Costs:** $5,000 * **Estimated delivery date**: 7th October 2022 | Due Date | Hours | Deliverable | Specification | | -------- | ----- | ----------- | ------------- | | 07 October 2022 | ~40 | <ul><li>Implement Jest testing framework</li><li>Write Unit tests for components</li></ul> | Jest is a JavaScript testing framework designed to ensure correctness of any JavaScript codebase. It allows you to write tests with an approachable, familiar and feature-rich API that gives you results quickly. | | 07 October 2022 | ~40 | <ul><li>Implement TypeScript</li><li>Convert refactored components to TS</li><li>Allow for JS in TypeScript build to not impact previously built components</li></ul> | TypeScript code is more reliable and easier to refactor. This enables developers to evade errors and do rewrites much easier. Having defined Types invalidate most unexpected errors in JavaScript codebases, and create a quick feedback loop to fix little mistakes when writing new code or refactoring. | | 07 October 2022 | ~20 |<ul><li>Cypress E2E testing (If neede)</li></ul> | Cypress is an all-in-one testing framework that does not use Selenium or WebDriver. The tool uses Node.js to start a browser under special control. The tests in this framework are run at the browser level, not just remote-controlling offering several advantages. | ## Additional Information :heavy_plus_sign: Any additional information that you think is relevant to this application that hasn't already been included.