Skip to content

junwei07/VeriTix

Repository files navigation

VeriTix

VeriTix is a Web2.5 ticket verification bridge. Buyers arrive from partner ticketing platforms (e.g., Ticketmaster), verify identity via Singpass-style flow, and have their ticket secured on XRPL behind the scenes. The UI keeps crypto jargon out of the default experience but exposes audit proof when needed.

What This Demo Does

  • Partner redirect flow: /bridge guides users to verify and secure a purchased ticket.
  • Identity onboarding: NRIC-based login with auto XRPL wallet creation (demo).
  • Ticket minting: backend minting for purchases and client-side XRPL testnet minting for the create-wallet demo.
  • Ticket wallet: Profile page shows owned tickets and pending-sale tickets.
  • Marketplace: simple second-hand listing flow (localStorage-backed) with “Your Listings” section.

What This Demo Does NOT Do

  • No real Stripe checkout (payment is mocked in the UI).
  • Marketplace is not backed by a real database or XRPL offers.
  • MongoDB is optional; most flows still work without it.

Frontend Routes

  • / Landing page for direct visitors.
  • /bridge Partner redirect verification flow.
  • /events Partner events directory (demo data).
  • /profile User profile + My Tickets + Pending Sale.
  • /marketplace Second-hand listings (localStorage).

Tech Stack

  • Frontend: React + Vite + TypeScript + Tailwind
  • Backend: Node.js + Express
  • XRPL: Testnet websocket (wss://s.altnet.rippletest.net:51233 by default)

Setup

Backend

cd backend
npm install

Create backend/.env:

PORT=4000
ISSUER_SEED=your_issuer_seed
XRPL_SERVER=wss://s.altnet.rippletest.net:51233
MONGODB_URI=mongodb://127.0.0.1:27017/veritix
STRIPE_SECRET_KEY=mock_key_ok

Start server:

npm start

Frontend

cd frontend
npm install
npm run dev

Vite proxies /api to http://127.0.0.1:4000.

Key Demo Flows

1) Partner Redirect (Bridge)

  • Visit /bridge.
  • Continue to login, verify, and secure your ticket.

2) Ticket Purchase (Demo)

  • Events are demo data.
  • Payment is simulated.
  • Backend mints a ticket NFT and the UI stores it in localStorage.

3) Marketplace Listing (Demo)

  • From Profile → My Tickets, list a ticket.
  • Ticket moves to Pending Sale and appears in Marketplace.
  • Removing a listing restores it to My Tickets.

Demo Walkthrough

  1. Start backend + frontend.
  2. Open http://localhost:5173.
  3. Click "Verify My Ticket" to enter the partner bridge flow.
  4. Complete login (NRIC demo) and follow the secure ticket flow.
  5. Go to Profile → My Tickets to see the minted ticket.
  6. List a ticket for resale and confirm it moves to Pending Sale.
  7. Visit Marketplace to see public listings and "Your Listings".
  8. Remove your listing to restore the ticket back to My Tickets.

LocalStorage Keys (Demo)

  • veritix_user
  • veritix_tickets
  • veritix_tickets_pending
  • mock_listings

Notes

  • XRPL access is required for wallet creation and minting.
  • If XRPL is unavailable, login/mint will fail with a 500 error from the backend.
  • MongoDB is optional; server runs without it, but DB-backed routes will not function.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5