How markangelguevarra/gigpay works
GigPay is a dual-sided freelance marketplace centered on escrow tasks: users authenticate and connect a wallet, clients post and sign funding actions, freelancers accept work, and clients approve completion to release funds. Supabase supplies task persistence and realtime updates; the Soroban contract implements on-chain funding, approval, and task lookup. The README also describes a fee-savings widget and human-verification puzzle, but their source wiring was not sampled. The map follows supplied source excerpts and documented capabilities; unsampled details are represented only at the existing directory level.
Main entry points: App.jsx App Router · TaskContext.jsx Task Context · stellar.js Stellar Wallet Utility · AuthPage.jsx Auth Page
Components 23
Access and Identity
- App Router
src/App.jsx - Auth Page
src/pages/AuthPage.jsx - Auth Context
src/context/AuthContext.jsx - User Profile
src/pages/ProfilePage.jsx - Supabase Auth
Task Marketplace
- Client Dashboard
src/pages/ClientDashboard.jsx - Freelancer Dashboard
src/pages/FreelancerDashboard.jsx - Task Context
src/context/TaskContext.jsx - Task Progress
src/components/TaskProgress.jsx - Supabase Client
src/lib/supabase.js - Task Database
Escrow Payments
- Stellar Wallet Utility
src/lib/stellar.js - Freighter Wallet
- Stellar Horizon
- Soroban Escrow
contracts/gigpay_escrow/src/lib.rs - Contract Task Storage
contracts/gigpay_escrow/src/lib.rs - Token Contract
User Experience
- Landing Page
src/pages/LandingPage.jsx - Navigation
src/components/Navbar.jsx - Slide Verification
src/components/SlideToVerify.jsx - Fee Savings Widget
src/pages - Toast Notifications
src/context/ToastContext.jsx
Other components
- Client or Freelancer
Connections 28
- Client or Freelancer → App Router: opens
- App Router → Landing Page: routes
- App Router → Auth Page: routes
- App Router → Client Dashboard: routes
- App Router → Freelancer Dashboard: routes
- App Router → User Profile: routes
- App Router → Navigation: renders
- Auth Page → Auth Context: signs in
- Auth Page → Toast Notifications: notifies
- Auth Context → Supabase Auth: authenticates
- Navigation → Auth Context: connects wallet
- Auth Context → Stellar Wallet Utility: connects
- Stellar Wallet Utility → Freighter Wallet: requests access
- Client Dashboard → Task Context: creates and approves
- Freelancer Dashboard → Task Context: accepts work
- Client Dashboard → Task Progress: displays status
- Freelancer Dashboard → Task Progress: displays status
- Task Context → Supabase Client: reads and writes
- Supabase Client → Task Database: queries and subscribes
- Task Database → Supabase Client: sends realtime changes
- Task Context → Stellar Wallet Utility: requests signatures
- Stellar Wallet Utility → Stellar Horizon: loads account
- Stellar Wallet Utility → Freighter Wallet: signs transaction
- Soroban Escrow → Contract Task Storage: stores task state
- Soroban Escrow → Token Contract: transfers funds
- Landing Page → Fee Savings Widget: presents savings
- Auth Page → Slide Verification: verifies human
- Task Context → Toast Notifications: reports realtime events