Revora is a revenue-sharing platform on the Stellar network. Startups register RevenueShare offerings, report revenue, and distribute payouts; investors discover offerings, track their portfolio and review an on-chain ledger of distributions.
This repository is the web front end (React + Vite + TypeScript). It is a demo UI: all data is sample data generated in the browser, and no real wallets, funds or customers are involved.
Live site: https://revora-frontend-omega.vercel.app
Deployed on the Stellar testnet (no real funds):
| Contract | ID | Explorer |
|---|---|---|
| Revora revenue-deposit | CABIJLQV4TKBHMETNIISV4OT76EDR5WXCZVJJLXHA6AEIII2JVYAHP2I |
Stellar Expert / Stellar Lab |
- Landing page with entry points to every area of the app
- Auth screens: sign in, sign up, forgot password, 2FA recovery and backup codes
- Startup: issuer dashboard, monthly revenue reporting, offering registration wizard with document uploader, governance proposal creation and vote receipt
- Investor: offering discovery with filters, portfolio summary (allocation, performance), virtualized ledger table, payout schedule (Gantt/timeline)
- Admin: alerts inbox, scheduled exports
- Design system: tokens, density modes, empty/error states, status timelines, notification bell, command palette, RTL and accessibility guidelines
Requires Node.js 20+ (CI uses 22).
npm ci
npm run dev # http://localhost:5173| Script | Purpose |
|---|---|
npm run dev |
Start the Vite dev server |
npm run build |
Production build into dist/ |
npm run preview |
Serve the production build locally |
npm run lint |
ESLint over src/ |
npm test |
Vitest with coverage (npm run test:watch to watch) |
None are required. The app runs entirely client-side with mock data.
/, /login, /signup, /forgot-password, /recover-2fa, /settings/2fa/backup-codes,
/startup/dashboard, /startup/report-revenue, /startup/offering-registration,
/startup/governance/proposals/create, /startup/governance/vote-receipt,
/investor/portal, /investor/portfolio, /investor/ledger, /investor/payouts,
/admin/alerts, /admin/scheduled-exports. Unknown paths show a "Page not found" screen.
The site is a static SPA deployed on Vercel. vercel.json rewrites all paths to index.html.
npm i -g vercel
vercel --prodAny static host works: build with npm run build and serve dist/ with an SPA fallback.
Design and UX notes live in docs/ (see docs/uiux/ for per-component specs,
plus accessibility, RTL and responsive guidelines).
GitHub Actions (.github/workflows/ci.yml) installs dependencies and runs the production build
on every push and pull request to master.
Some tests and type checks are not enforced in CI; src/pages/AuditTrail.tsx and
src/pages/DistributionDashboard.tsx have syntax errors and are not wired into any route.