Thank you for your interest in contributing! AfriPay is open source and welcomes contributions of all kinds.
# 1. Fork and clone
git clone https://github.com/devUnixx/afripay.git
cd afripay
# 2. Install dependencies
npm install
# 3. Copy env and fill in values
cp .env.example .env.local
# 4. Push the database schema
npx prisma db push
# 5. (Optional) Seed demo data
npm run db:seed
# 6. Start dev server
npm run devOpen http://localhost:3000.
- Branch — create a branch from
main:git checkout -b feat/your-feature - Code — follow the style guide below
- Test —
npm test - Lint —
npm run lint - PR — open a pull request against
mainwith a clear description
We use Conventional Commits:
feat: add invoice PDF export
fix: correct USDC balance rounding
docs: update API reference
chore: bump stellar-sdk to 13.x
- TypeScript strict mode — no
anywithout a comment explaining why - Tailwind for all styling — no inline styles, no CSS modules
- Server Components by default — add
"use client"only when needed - Zod for all API input validation
- No secrets in code — use environment variables
app/
(auth)/ # Login, register, onboarding pages
(dashboard)/ # Authenticated app pages
api/ # API route handlers
pay/[token]/ # Public payment page
components/ # Reusable React components
hooks/ # Custom React hooks
lib/ # Utilities and third-party clients
prisma/ # Schema and migrations
docs/ # Technical documentation
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:ci # CI mode with coverageUse the bug report template.
Do not open a public issue for security vulnerabilities. See SECURITY.md.
By contributing, you agree your contributions will be licensed under the Apache 2.0 License.