Thank you for your interest in contributing to LancePay! We welcome contributions from the community to help build a better payment platform for Nigerian freelancers.
Click the "Fork" button at the top right of the repository page to create your own copy of the project.
git clone https://github.com/YOUR_USERNAME/LancePay.git
cd LancePayCreate a descriptive branch name that reflects the feature or fix you're working on:
# For new features
git checkout -b feat-add-currency-converter
# For bug fixes
git checkout -b fix-invoice-validation-error
# For documentation
git checkout -b docs-update-stellar-guide
# For refactoring
git checkout -b refactor-payment-flowBranch Naming Convention:
feat-for new featuresfix-for bug fixesdocs-for documentation changesrefactor-for code refactoringchore-for maintenance tasks
- Write clean, readable code following our Code Style Guide
- Keep components under 50 lines when possible
- Keep API routes under 40 lines when possible
- Avoid unnecessary abstractions — less code = less bugs
- Test your changes locally
Write clear, descriptive commit messages:
git add .
git commit -m "feat: add NGN currency converter to dashboard"Commit Message Format:
<type>: <description>
[optional body]
Types:
feat:New featurefix:Bug fixdocs:Documentation changesrefactor:Code refactoringchore:Maintenance taskstest:Adding or updating tests
Examples:
git commit -m "feat: add Yellow Card withdrawal integration"
git commit -m "fix: resolve invoice PDF generation error"
git commit -m "docs: update README with Stellar migration info"git push origin YOUR_BRANCH_NAMEFor example:
git push origin feat-add-currency-converter- Go to the original LancePay repository
- Click "Pull Requests" → "New Pull Request"
- Click "compare across forks"
- Select your fork and branch
- Fill out the PR template with:
- Title: Clear, descriptive title (e.g., "Add Yellow Card withdrawal integration")
- Description: What changes you made and why
- Related Issue: Link to any related issues (e.g., "Closes #123")
- Testing: How you tested your changes
- Click "Create Pull Request"
- Code follows the Code Style Guide
- Changes have been tested locally
- No console errors or warnings
- Documentation updated if needed
- Commit messages are clear and descriptive
## Description
Brief description of what this PR does
## Type of Change
- [ ] New feature
- [ ] Bug fix
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Other (please describe)
## Related Issue
Closes #(issue number)
## How Has This Been Tested?
Describe how you tested your changes
## Screenshots (if applicable)
Add screenshots for UI changes- Node.js 18+
- PostgreSQL (or Neon account)
- Git
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your credentials
# Run database migrations
npx prisma migrate dev
# Start development server
npm run devOpen http://localhost:3000 to view the app.
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npx prisma studio # Open database UI
npx prisma migrate dev # Create new migrationWe follow a "less code = less bugs" philosophy. Key principles:
-
Minimize Abstractions
- Don't create utilities for one-time operations
- Three similar lines > premature abstraction
- Only abstract when you have 3+ repeated uses
-
Keep Files Small
- Components: Max 50 lines
- API routes: Max 40 lines
- If longer, consider splitting
-
No Over-Engineering
- Don't add features beyond what's requested
- Don't add error handling for scenarios that can't happen
- Trust internal code and framework guarantees
-
Clear Naming
- Use descriptive variable/function names
- Avoid abbreviations unless obvious
- Components should be PascalCase
- Functions/variables should be camelCase
See CODE_STYLE.md for full guidelines.
Found a bug? Please create an issue with:
- Clear title describing the bug
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Screenshots if applicable
- Environment details (browser, OS, etc.)
Have an idea? Create an issue with:
- Clear title describing the feature
- Problem statement — What problem does this solve?
- Proposed solution — How would it work?
- Alternatives considered — Other approaches you thought about
- Additional context — Screenshots, mockups, examples
- Check existing Issues
- Check the Documentation
- Create a new issue with the "question" label
Looking for where to start? Check out issues labeled:
good first issue— Perfect for newcomershelp wanted— We need community helpdocumentation— Improve our docs
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Keep discussions professional
Every contribution, no matter how small, helps make LancePay better for Nigerian freelancers. We appreciate your time and effort!
Built with ❤️ for Nigerian freelancers.