Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Duevy helps course reps and departments in Nigerian universities collect dues and levies by bank transfer, track who has paid, and give every student a receipt.
FinanceTypeScript · CSSGitHub @OlaiwonAbdullahiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Web app for Duevy — a dues collection platform for Nigerian university departments/classes. Lets department reps create dues, collect payments, manage payouts, run polls, and handle disputes; lets students/members join their department space and pay dues. Includes an admin dashboard and an AI chat assistant ("Duey").
Built with Next.js (App Router) and talks to the duevy-backend API.
nigerian-universities (institution data)cd duevy
npm install
Create .env.local in the project root:
NEXT_PUBLIC_API_BASE_URL=http://localhost:3000/v1
NEXT_PUBLIC_LOGO_DEV_TOKEN=your_logo_dev_token
| Variable | Required | Notes |
|---|---|---|
NEXT_PUBLIC_API_BASE_URL | Yes | Base URL of the backend API, including the /v1 prefix. Point this at your local backend (http://localhost:3000/v1) or a deployed one. |
NEXT_PUBLIC_LOGO_DEV_TOKEN | No | Public token from logo.dev — a fallback for bank logos we don't host in public/banks/ (mostly smaller MFBs). Without it, or when it has no logo either, a generated DiceBear pattern seeded with the bank name is shown. See app/(dashboards)/dashboard/payout/_components/BankLogo.tsx. |
Bank logos in public/banks/ are generated from nigerianbanks.xyz and Blockroll open-assets (docs/banks.json), both MIT. Refresh them with npm run banks:logos (add -- --verbose to see what was skipped).
Both are NEXT_PUBLIC_* and get inlined at build time, per Next.js convention.
The backend defaults to port 3000 and its FRONTEND_URL/CORS_ORIGINS config expects this app on port 3001 — since both projects default to 3000, run this one on 3001 explicitly to avoid a clash and keep CORS/cookies working:
npm run dev -- -p 3001
The app will be at http://localhost:3001. (If you use a different port, update FRONTEND_URL and CORS_ORIGINS in the backend's .env to match.)
| Command | Description |
|---|---|
npm run dev | Start the Next.js dev server |
npm run build | Production build |
npm start | Serve the production build (run build first) |
npm run lint | Lint with ESLint |
app/
├── (auth)/ # login, signup, verify-email, forgot/reset password
├── (dashboards)/
│ ├── dashboard/ # member/rep dashboard — dues, wallet, payouts, polls, assistant, disputes
│ └── admin/ # admin dashboard
├── api/ # Next.js route handlers (e.g. wallet callback)
├── vote/ # public poll voting pages
├── privacy/, terms/ # static pages
└── layout.tsx, page.tsx # root layout + landing page
components/ # shared UI components (shadcn-based)
lib/
├── api/ # typed API client — one file per backend resource
├── auth/ # auth context/provider
└── hooks/ # shared React hooks
docs/
├── API_SPECIFICATION.md # full backend API reference
├── FRONTEND_API_GUIDE.md # how this app talks to the backend
└── ASSISTANT_API_GUIDE.md # Duey (AI assistant) integration
lib/api/client.ts is the shared HTTP client; every resource in lib/api/ (auth, dues, spaces, payouts, polls, wallet, assistant, etc.) wraps it with typed request/response shapes matching the backend.
This project uses shadcn/ui with the radix-maia style and Hugeicons as the icon set (see components.json). Add new components with:
npx shadcn@latest add <component>
/v1-prefixed routes and relies on cookies for auth (the backend sets JWT cookies) — make sure NEXT_PUBLIC_API_BASE_URL and the backend's CORS_ORIGINS/FRONTEND_URL are consistent so cookies survive cross-origin requests in dev.docs/API_SPECIFICATION.md for the full backend API contract this app is built against.