Skip to content

MVP Specification

Christopher David edited this page May 22, 2023 · 55 revisions

Here we specify our minimum viable product (MVP).

Summary

The Arcade MVP is a mobile app (Android & iOS) enabling users to:

  • View orderbook and post trades via the ArcTrade Spec
  • Create, join, leave, & share chat channels
  • Send encrypted direct messages

Nostr integration

It is a Nostr client which implements:

  • NIP-04 - Encrypted direct messages
  • NIP-06 - Authentication
  • NIP-19 - Login keys via nsec
  • NIP-28 - Public chat channels
  • NIP-33 - Parameterized replaceable events

Tech stack

  • React Native via Expo and Ignite
  • No backend except Nostr relays/L2s
  • State: Mobx-State-Tree

Post-MVP Buildout

  • NIP-15 - Marketplaces
  • NIP-12 - Geohashed posts
  • NIP-32 - Reputation
  • Allow multiple logins/identities

Navigation & Screens

Onboarding UX

  • Splash image
  • HomeScreen
  • LoginScreen
  • CreateAccountScreen
  • Desired Topics

NavigationBar

  • HomePageButton
  • WorldFeedButton
  • CreatePostButton
  • MyOrdersButton
  • ProfileButton

HomePage Outline

  • SideBar

  • MessagesButton

    • MessagesScreen:
      • "Message" Header
      • NewMessageButton
      • SearchMessagesField
      • MyOrdersButton
        • MyOrdersScreen:
          • BackButton -"My Orders" Header -List of orders that when clicked open the Chat with individuals in active orders.
      • ChatList (click to open chat, hold to edit Chatlist by removing chats)
  • DiscoverButton

    • DiscoverScreen:
      • "Discover" Header
      • (NOT MVP) (+) Button for Editing DiscoverScreen by adding/removing buttons (Events Button, Twitter-Feed Button, Live-Streams Button...)
      • LocalRadarButton
      • ChannelSearchButton
      • ListingsButton
        • ListingsScreen
          • Listings Header
          • Location Drop-Down with Saved Location
          • Currency Drop-Down with Save Currency
          • Search Field
          • FilterButton
            • FilterListingScreen:
              • Currency Dropdown
              • Amount Field
              • Payment Type Dropdown
              • Payment Method Dropdown
              • FindOffersButton
          • CreateButton (A "+" at the bottom center of the screen)
            • CreateListingScreen
              • Buy/Sell Toggle
              • Floating/Fixed Toggle
              • Select Menu 1
              • Select Menu 2
              • Applicable Rate Displayed
              • Fixed/Range Amount Toggle
              • Amount Input Field
              • Currency Dropdown Menu
              • Payment Type Dropdown
              • Payment Method Dropdown
              • Hours Info
              • 24 Hour Access Toggle
              • Workdays Only Toggle
              • Location Dropdown
              • Payment Window
              • BTC Confirmations Dropdown
              • Listing Description Subheader
              • Title Input Field
              • Description Input Field
              • CreateListingButton
  • ChannelBubbleList

    • ChannelBarSideScreen:
      • Banner
      • Name of Guild/Channel
      • Three Dots Button (Opens opens a menu from the button up to ⅔ of the screen)
        • ThreeDotsScreen:
          • Invite Button
          • Notification Settings Button
          • Mark as Read
          • Leave Server
          • AllowMessageRequests Toggle
          • AllowDMs Toggle
      • Invite Button
      • ThreadList
      • ThreadScreen:
        • Back Button to ChannelBarSideScreen
        • Name of Thread
        • Search Field
        • Active Users Button (Opens side bar on the right side of the screen)
          • ActiveUsersSideBar:
          • Name of Thread
          • Description of thread
          • PinnedButton
          • NotificationButton with Mute Options
          • SettingsButton
          • Channel Settings
          • Admin List
          • Moderator List
          • Online List
        • Live Chat Feed
        • "+" PlusButton (Opens opens a menu from the button up to 1/3 of the screen)
        • PlusButtonScreen:
          • "X" Button to close menu
          • Zap Button
          • Input Field
          • Emoji Button
          • Commands Button
            • CommandScreen:
              • The card grows vertically to show a few commands one can scroll through (/advice, /offer, /request)
      • Keyboard
      • Camera Button
      • Images from phone to post
      • Zaps Button
        • Zaps Menu:
          • Zap Community
          • Zap Community Member
          • Zap for a Membership
      • Input Field
      • Emoji Button
  • CreateChannelBubble - Guild/ChannelCreationScreen (Like Discord’s "Servers")

WorldFeed Outline

  • WorldFeedScreen :
    • "Arcade" Header
    • Create a Post Button
      • CreatePostScreen:
    • Search Button
      • SearchFeedScreen:
    • Card Feed of recommended, following, and chosen amount of ads the user is paid to see

CreatePost Outline

MyOrders Outline

  • MyOrdersScreen:
    • Orders Header
    • List of Orders
    • Filter Button
      • MyOrdersFilterScreen:
        • Status Buttons
    • Custom Buyers Message Field
    • Fulfillment UX
      • (Someone who has completed a trade on another platform should fill this UX)_

Profile Outline

  • ProfileScreen
    • Account Name as Header (Is also a Dropdown of accounts)
    • Make a Post Button
    • Sandwich Button (Opens a menu from the button up to ⅔ of the screen)
      • ProfileSandwichScreen
        • Settings & Privacy Button
          • Settings&PrivacyScreen
        • Payments & Zaps Button
          • Payments&ZapsScreen
        • Relays Button
          • RelaysScreen
        • Your Activity Button
          • YourActivityScreen
        • Saved Button
          • SavedScreen
        • Orders Button
          • OrderSettingsScreen
        • Help / Report Button
          • Help / Report Screen
        • Emails Button
          • EmailsScreen
    • Banner
    • Profile Image
    • Stats (Reputation, Guilds, Badges)
    • Edit Description Button
    • Display Name, Website, Timezone, About
    • Share Profile Button
    • Stories Slider
    • Tabs to view Image Content or Text Content

Wireframes

Source of truth (wip) is this Figma.

Not final; use as inspiration. Ignore 'pinned' for now

mvp1

mvp2