Skip to content

Yoii-Inc/ethtokyo-2024-hackathon

Repository files navigation

OpenBooking

What it does

OpenBooking is a blockchain-based reservation platform that connects customers with service providers. It offers a decentralized solution for booking appointments, making deposits, and managing reservations using smart contracts.

The problem it solves

OpenBooking addresses several issues in the traditional booking industry:

  • Lack of transparency in reservation processes
  • High fees charged by centralized booking platforms
  • Trust issues between customers and service providers
  • Inefficient management of deposits and cancellations

Challenges I ran into

  • Implementing a user-friendly interface for blockchain interactions
  • Ensuring seamless integration between frontend and smart contracts
  • Optimizing gas fees for various blockchain operations
  • Designing a flexible system to accommodate different types of services and businesses
  • Implementation of a token-based loyalty program

Technologies I used

  • Frontend: Next.js, React, TypeScript
  • Styling: Tailwind CSS
  • Blockchain: Ethereum (and other EVM-compatible networks)
  • Smart Contracts: Solidity
  • Web3 Integration: thirdweb SDK
  • Version Control: Git

How we built it

  1. Designed the smart contract architecture for reservations and payments
  2. Developed and tested smart contracts using Hardhat and Ethers.js
  3. Created a responsive frontend using Next.js and Tailwind CSS
  4. Integrated thirdweb SDK for seamless blockchain interactions
  5. Implemented separate interfaces for customers and businesses
  6. Conducted thorough testing and optimization for gas efficiency

What we learned

  • The intricacies of developing decentralized applications (dApps)
  • Balancing user experience with blockchain functionality
  • The importance of gas optimization in smart contract design
  • Strategies for effective state management in a decentralized system

What's next for OpenBooking

  • Mobile app development for increased accessibility
  • Integration with popular calendar systems
  • Multi-chain support to offer users more blockchain options
  • Expansion into new service sectors beyond current offerings
  • Gasless transactions using thirdweb paymaster

Installation

Install the template using thirdweb create

  npx thirdweb create app --next

Environment Variables

To run this project, you will need to add the following environment variables to your .env file:

CLIENT_ID

To learn how to create a client ID, refer to the client documentation.

Run locally

Install dependencies

yarn

Start development server

yarn dev

Create a production build

yarn build

Preview the production build

yarn start

Resources

Need help?

For help or feedback, please visit our support site