Skip to content

chemicalcommando/MixMatch-Backend

ย 
ย 

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

 
 
 

Contributors

Languages

  • TypeScript 98.9%
  • JavaScript 1.1%