Skip to content

Latest commit

 

History

History
158 lines (115 loc) · 10.4 KB

README.md

File metadata and controls

158 lines (115 loc) · 10.4 KB

Hero

Servify by SigmaNerds

Built with ☕ and ❤️ at ETHIndia 2023.

📝 Table of Contents

💡 Goals

Accessing dependable and trustworthy kind of services can be difficult in today's fast-paced environment. People often face difficulties in finding trustworthy providers for tasks such as gardening, carpentry, and tutoring within their communities. This lack of a centralized, secure platform contributes to uncertainties surrounding service quality, reliability, and safety.

To address this issue, we present you Servify, a platform designed to connect individuals seeking local services with qualified providers on blockchain, for unparalleled credibility, accountability and authenticity.

🧠 Knowledge Primer

  • Push Protocol Push Protocol, formerly known as EPNS, is a Web3 communication protocol that enables cross-chain notifications and messaging for dApps, wallets, and services. It provides a decentralized and gasless way for users to receive real-time updates and interact with Web3 applications.
  • Anon Aadhaar is a zero-knowledge protocol that allows Aadhaar ID owners to prove their identity in a privacy preserving way. It provides a set of tools to generate and verify proofs, authenticate users and verify proofs on-chain.
  • Scroll is a Layer 2 blockchain platform that aims to scale Ethereum by processing transactions off-chain and then committing them to the main Ethereum chain. It utilizes zero-knowledge proofs (ZKPs) to verify the validity of these off-chain transactions without revealing the underlying data, ensuring scalability, privacy, and security.

🚩 What Problems Servify Solves

  • Lack of a decentralized Hub: The absence of a decentralized platform for local services with verified credibility creates difficulties for individuals looking to connect with reliable service providers within their communities.
  • Trust and Security Concerns: Current methods for verifying service providers often fall short in establishing trust and security, leading to reservations among users about the reliability of the services offered.
  • Need for privacy protection and Verification: Anon Aadhaar will serve as a solution to balance the need for user anonymity with the requirement for identity verification, offering a secure and privacy-centric approach to establishing trust.
  • Community-Based Exchanges: The proposed platform aims to facilitate secure and reliable exchanges within the community, fostering a sense of safety and accountability among users.
  • Middle-man relayering: We also act as a middle man in any scenario of dispute over the service provider and consumer.

📺 Preview

Preview Preview Preview Preview

💻 Technology Stack

Blockchain ⛓️ Backend 🛠️ Frontend ✨ Protocols
Solidity Node React Anon Aadhar
Scroll Express TypeScript Push Protocol
TypeScript Formik
MongoDB Yep
Framer Motion

📐 Architecture

Architecture Note: Click on the image to see the full architecture clearly.

👔 Emphasis on Tracks

Push Protocol

  • Usage:
    • Push Notification: This enables Servify to send real-time notifications to users' wallets or mobile devices, keeping them informed about important events, updates, and reminders.
    • Channel Settings: We have also given user the freedom and choice to select which notification do they want to receive while using our application
    • Support Chat: Used for offering real-time chat support to the users directly, eliminating the need for users to switch to external platforms, creating a seamless and convenient experience.
    • P2P Chat: To facilitate secure and decentralized peer-to-peer communication between users without the need for centralized servers and intermediaries, ensuring privacy and data ownership.
    • Token Gated Chat: Used for restricting access to specific groups of users based on their token ownership. This enables the creation of exclusive communities for high-value users, fostering deeper engagement and loyalty.
  • Implementation: Code with the implementation of notifications for Push Protocol is housed in server/notifications/notifications.service.ts. Link For Chat functionalities, you can visit the Chat pages in the client subdirectory.

Ethereum Foundation: Anon Aadhar

  • Usage: Anon Aadhar is being utilised as proof of citizenship and identity in Servify, to maintain anonimity while provisioning credibility.
  • Implementation:

React context provider Anon Aadhaar

ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
    <WagmiConfig config={wagmiConfig}>
      <RainbowKitProvider chains={chains}>
        <AnonAadhaarProvider _appId={ANON_AADHAAR_APP_ID}>
          <App />
        </AnonAadhaarProvider>
      </RainbowKitProvider>
    </WagmiConfig>
  </React.StrictMode>,
);

Consuming Anon Aadhar Validation into our Custom Forms

const [anonAadhaar] = useAnonAadhaar();
  useEffect(() => {
    if (anonAadhaar.status === 'logged-in') {
      formik.setFieldValue('anonAadhaarLoggedIn', true);
    }
  }, [anonAadhaar]);
<div className="mb-6">
        <Label>Verify your identity with Anon Aadhaar</Label>
        <LogInWithAnonAadhaar />
        ...

Scroll

  • Usage: Contracts pertaining to Servify are deployed on Scroll.
  • Implementation: Sepolia Testnet Explorer on https://sepolia.scrollscan.com/
    • SBT on Scroll: 0x189D6807030b09D86CA4c61c8bfE22DDcA4A682E Link
    • Escrow on Scroll: 0xC434c7be548A31fb8dA76f0CC3Cf25e51166B039 Link

💪 Challenges Faced (and WAGMI!)

  • Developer Experience of SDKs: Inadequate or unclear documentation did significantly hinder our developer experience as implementation was difficult in the given duration with limited support.
  • Figuring out the Settlement Flow: Another challenge we encountered was optimizing the settlement flow, especially in cases where users were dissatisfied with the service provided. Balancing flexibility for both users and providers presented a nuanced trade-off.
    • Ultimately, we resolved this by implementing a support chat feature. This solution aimed to address user concerns efficiently, allowing for real-time communication and issue resolution.
    • The introduction of the support chat provided a streamlined approach to handle disputes or dissatisfaction, promoting a user-centric and responsive system for dispute resolution within the service.

⏭️ What's Next

  • Enable direct off-ramping of cryptocurrency: Enabling direct off-ramping of cryptocurrency can be simplified through the integration of the Saber SDK by Mudrex. This SDK streamlines the process, allowing for a seamless conversion of crypto assets into traditional fiat currencies. With Mudrex's Saber SDK, users can efficiently and directly withdraw their crypto holdings, providing a user-friendly and convenient off-ramping solution. The SDK's features facilitate a straightforward experience, ensuring that users can easily convert and access the value of their cryptocurrencies in traditional financial systems. This integration enhances accessibility and usability, contributing to a more versatile and user-centric crypto off-ramping experience.

  • Enable easier on-boarding with the help of OKTO Wallet: Okto Wallet or any similar wallet service can enhance the onboarding experience for users, making it efficient, secure, and user-friendly.

🤝 Contributions

Meet the creators of Servify:

Contributors

We are not open to receiving contributions to this project at this moment. If you'd like to highlight any bugs or pass on recommendations, you can always open an issue and give us a heads up!

📜 License

We have opted for the CC BY-NC 4.0 DEED license, which means that -

You are free to:

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material The licensor cannot revoke these freedoms as long as you follow the license terms.

Under the following terms:

  • Attribution — You must give appropriate credit , provide a link to the license, and indicate if changes were made . You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • NonCommercial — You may not use the material for commercial purposes . No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.