Skip to content

MixMatch-Inc/Discoverly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

163 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Discoverly ๐Ÿฝโœจ

Swipe. Match. Order. Pay with Stellar.

Discoverly is a Tinder-style food ordering app where users swipe through food items, match with their cravings, and pay seamlessly using the Stellar blockchain.

Built with:

  • โš›๏ธ Expo (React Native) โ€“ Mobile app
  • ๐ŸŸข Express.js โ€“ Backend API
  • โญ Stellar โ€“ On-chain payment processing
  • ๐Ÿƒ MongoDB โ€“ Data persistence

๐Ÿš€ Overview

Discoverly reimagines food ordering with a swipe-based discovery experience.

Instead of scrolling through long menus:

  • Users swipe right to like a dish
  • Swipe left to skip
  • Matched dishes go into their cart
  • Payments are processed via Stellar blockchain

This allows:

  • Fast crypto-native checkout
  • Low transaction fees
  • Borderless payments
  • Transparent transaction tracking

๐Ÿ— Architecture

discoverly/
โ”‚
โ”œโ”€โ”€ mobile/          โ†’ Expo (React Native) app
โ”œโ”€โ”€ backend/         โ†’ Express.js API
โ”œโ”€โ”€ stellar/         โ†’ Stellar payment utilities & services
โ””โ”€โ”€ README.md

Mobile (Expo)

  • Swipe UI (card stack)
  • User authentication
  • Wallet connection
  • Order flow
  • Payment confirmation

Backend (Express)

  • Auth & session management
  • Restaurant & food listing APIs
  • Match & cart management
  • Order creation
  • Stellar payment verification
  • Webhook/event listeners

Stellar Layer

  • Wallet creation (optional custodial)
  • Payment intent generation
  • Transaction submission
  • Transaction verification
  • Payment status tracking

โš™๏ธ Tech Stack

Mobile

  • Expo
  • React Native
  • React Navigation
  • Axios
  • Zustand (or preferred state manager)

Backend

  • Node.js
  • Express.js
  • MongoDB + Mongoose
  • Stellar SDK
  • JWT Authentication

Blockchain

  • Stellar Network
  • Stellar SDK (JavaScript)
  • Horizon API

๐Ÿ”‘ Key Features

๐Ÿ‘ค User

  • Register / Login
  • Swipe-based food discovery
  • Add to cart via match
  • Checkout with Stellar
  • View order history
  • Track payment status

๐Ÿ” Restaurant

  • Create food listings
  • Manage availability
  • Receive on-chain payments

๐Ÿ’ณ Payments (Stellar)

  • Create payment request
  • User signs transaction
  • Submit to Stellar network
  • Verify on backend
  • Confirm order after verification

โญ Stellar Integration

Network Configuration

import { Horizon, Networks } from "stellar-sdk";

const server = new Horizon.Server("https://horizon-testnet.stellar.org");

const networkPassphrase = Networks.TESTNET; 

๐Ÿ’ฐ Payment Flow

  1. User taps Checkout

  2. Backend creates a payment intent

  3. Backend returns:

    • Destination address
    • Amount
    • Memo (order ID)
  4. User signs transaction

  5. Transaction submitted to Stellar

  6. Backend verifies:

    • Transaction hash
    • Destination
    • Memo
    • Amount
  7. Order marked as PAID


๐Ÿ”„ Example Payment Verification

const tx = await server.transactions().transaction(txHash).call();

if (
  tx.memo === orderId &&
  tx.successful
) {
  // Mark order as paid
}

๐Ÿ“ฆ Installation

1๏ธโƒฃ Clone Repo

git clone https://github.com/your-username/discoverly.git
cd discoverly

2๏ธโƒฃ Backend Setup

cd backend
npm install

Create .env:

PORT=5000
MONGO_URI=
JWT_SECRET=
STELLAR_SECRET_KEY=
STELLAR_NETWORK=testnet

Run:

npm run dev

3๏ธโƒฃ Mobile Setup

cd mobile
npm install
npx expo start

Update API base URL inside config.


๐Ÿ” Environment Variables

Backend

Variable Description
PORT API port
MONGO_URI MongoDB connection string
JWT_SECRET Auth signing secret
STELLAR_SECRET_KEY Server wallet secret
STELLAR_NETWORK testnet / public

๐Ÿ“ฒ Swipe Logic

Food cards are fetched from:

GET /api/foods/discover

Swipe Right:

POST /api/match

Creates:

  • Match record
  • Adds to cart

Swipe Left:

  • No persistence (optional tracking)

๐Ÿง  Order Flow

Swipe โ†’ Match โ†’ Cart โ†’ Checkout โ†’ Stellar Payment โ†’ Verification โ†’ Order Confirmed

Order statuses:

  • PENDING
  • AWAITING_PAYMENT
  • PAID
  • PREPARING
  • COMPLETED
  • CANCELLED

๐Ÿ”Ž Security Considerations

  • Never expose server secret key
  • Verify all Stellar transactions on backend
  • Validate memo & amount
  • Use HTTPS in production
  • Use rate limiting on payment endpoints
  • Consider multi-sig for restaurant wallets (future improvement)

๐ŸŒ Deployment

Backend

  • AWS / Railway / Render / DigitalOcean
  • Use production Stellar network
  • Secure environment variables

Mobile

  • Expo EAS build
  • App Store / Play Store deployment

๐Ÿ”ฎ Future Improvements

  • Non-custodial wallet integration
  • QR payment support
  • Restaurant analytics dashboard
  • Stablecoin support (USDC on Stellar)
  • Subscription meal plans
  • On-chain loyalty points

๐Ÿงช Testing

Use Stellar Testnet:

  • Fund accounts via Friendbot
  • Switch to PUBLIC only in production

๐Ÿค Contributing

  1. Fork the repo
  2. Create feature branch
  3. Commit changes
  4. Open PR

Please follow:

  • Clean commit messages
  • Consistent code style
  • Proper API documentation

๐Ÿ“œ License

MIT License


๐Ÿ’ก Vision

Discoverly combines the addictive swipe UX of modern dating apps with the power of blockchain-based payments to create a frictionless, borderless food discovery experience.

Food meets finance. Discovery meets decentralization.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 42