# App

codecov
codecov

This is a client that displays and posts events related to short term accommodation lets over the nostr network.

Home page  Listing page  Listing page  Listing page  Listing page 

# Getting Started

Install Flutter By default flutter launches in mock mode. It will not attempt to connect to relays or swap services. To connect to other environments, check the VSCode debug launcher.

flutter run

# Structure

./lib
├── config            # Configs like default relays and EVM-RPC URLs
├── core              # Utils and mic
├── data
    ├── models        # Data models and mock data
    └── repositories  # Classes for fetching certain types of data
├── logic             # How data flows through app
├── presentation      # How data looks
└── README.md

# NIPs Utilized

  • NIP-01: Basic protocol for event creation and subscription.
  • NIP-05: Mapping Nostr keys to DNS-based internet identifiers.
  • NIP-09: Event deletion for removing listings or messages.
  • NIP-17: Encrypted direct messages for secure communication between hosts and guests.
  • NIP-33: Parameterized replaceable events for creating and updating listings and bookings.

# Dependency injection and mocking

  • Each Screen widget just handles the mapping of query and path parameters onto it's corresponding View widget. This allows for catalogging widgets while only using their TypeSafe parameters, rather than having to pass in query strings etc.

# Improvements

  • Swap in transaction should go straight into the contract
  • Escrow contract COULD encode bolt12, and then escrcow can do the swap by proving they paid a corresponding bolt11 invoice and releasing the funds to themselves. Out of scope.

# Assets

The assets directory houses images, fonts, and any other files you want to include with your application.

The assets/images directory contains resolution-aware images.

# Localization

This project generates localized messages based on arb files found in the lib/_localization directory.

To support additional languages, please visit the tutorial on Internationalizing Flutter apps