Thank you for your interest in contributing to Deen Bridge! We welcome contributions from the community to help make Islamic education more accessible.
This repository participates in the Stellar Drips Wave bounty program. Contributors can earn rewards by completing issues tagged with Wave labels.
- Find an Issue: Look for issues with
wave:Xlabels (where X is the point value) - Claim the Issue: Comment on the issue to express interest
- Submit a PR: Complete the work and submit a pull request
- Earn Points: Once merged, you earn points that translate to rewards
| Label | Points | Typical Scope |
|---|---|---|
wave:1 |
1 point | Documentation, typos, small fixes |
wave:2 |
2 points | Bug fixes, minor features, API improvements |
wave:3 |
3 points | New features, significant improvements |
wave:4 |
4 points | Complex features, architectural changes |
- One contributor per issue (first come, first served)
- PRs must be linked to the issue
- PRs must target the
devbranch (notmain) - Code must pass all tests
- Follow the coding standards below
- Node.js 18+
- MongoDB (local or Atlas)
- npm or yarn
- Git
# Fork the repository
# Clone your fork
git clone git@github.com:YOUR_USERNAME/dnb-backend.git
cd dnb-backend
# Add upstream remote
git remote add upstream git@github.com:Deen-Bridge/dnb-backend.git
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your values
# Start development server
npm run dev| Branch | Purpose |
|---|---|
main |
Stable, production-ready code — releases only |
dev |
Active development — all pull requests must target dev |
Maintainers periodically merge dev into main for releases. Pull requests opened against main will be asked to retarget dev.
-
Create a branch from the latest
dev:git fetch upstream git checkout -b feature/your-feature-name upstream/dev
-
Make your changes following our coding standards
-
Test your changes:
npm test -
Commit with a descriptive message:
git commit -m "feat: add transaction retry logic" -
Push and create a PR with
devas the base branch:git push origin feature/your-feature-name
- Use ES6+ features
- Use async/await for asynchronous code
- Follow existing file structure
- Use descriptive variable and function names
- Handle errors properly with try/catch
- Follow RESTful conventions
- Use appropriate HTTP status codes
- Return consistent response formats
- Document new endpoints
- Use Mongoose schemas for all models
- Add proper indexes for queries
- Validate input data
- Use transactions where appropriate
We follow Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
- Base Branch: open the PR against
dev, nevermain - Title: Use conventional commit format
- Description: Explain what and why
- Link Issue: Reference the issue number (
Closes #123) - Testing: Describe how you tested
- API Changes: Document any endpoint changes
Include:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- API endpoint affected
- Request/response samples
- Environment info
Include:
- Clear description of the feature
- Use case and motivation
- Proposed API design (if applicable)
- Database schema changes (if applicable)
- Never commit secrets or credentials
- Use environment variables for configuration
- Validate and sanitize all input
- Follow OWASP guidelines
- Report security issues privately
When working on Stellar-related features:
- Test on testnet first
- Never log private keys or seeds
- Verify transactions on-chain
- Handle network errors gracefully
- Follow Stellar best practices
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Follow Islamic principles of brotherhood
- Open a GitHub Discussion
- Check existing issues and PRs
- Review the documentation
By contributing, you agree that your contributions will be licensed under the MIT License.