Contributing to NoTap SDK

Thank you for your interest in contributing to NoTap! We welcome contributions from the community.

📋 Table of Contents


Code of Conduct

This project adheres to a Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].


How Can I Contribute?

🐛 Reporting Bugs

Before creating bug reports, please check existing issues to avoid duplicates.

Great Bug Reports Include:

  • Clear, descriptive title

  • Steps to reproduce the issue

  • Expected vs. actual behavior

  • SDK version and platform (Android/iOS/Web)

  • Sample code (if applicable)

  • Screenshots or logs

Submit bugs via: GitHub Issuesarrow-up-right

💡 Suggesting Enhancements

We welcome feature requests! Please provide:

  • Clear use case description

  • Expected behavior

  • Why this would be useful

  • Proposed API changes (if applicable)

📝 Improving Documentation

Documentation improvements are always welcome:

  • Fix typos or clarify existing docs

  • Add examples or use cases

  • Translate documentation

  • Create tutorials or guides

💻 Code Contributions

Areas Where We Need Help:

  • Additional authentication factor implementations

  • Platform-specific optimizations

  • Accessibility improvements

  • Performance enhancements

  • Test coverage expansion


Development Setup

Prerequisites

For Android SDK:

  • JDK 17 or higher

  • Android Studio Arctic Fox or newer

  • Kotlin 1.9+

  • Gradle 8.0+

For Web SDK:

  • Node.js 18+ and npm/yarn

  • Modern browser (Chrome 90+, Firefox 88+, Safari 14+)

Clone and Build


Pull Request Process

1. Fork and Create Branch

2. Make Your Changes

  • Follow coding standards (see below)

  • Add tests for new features

  • Update documentation as needed

  • Ensure all tests pass

3. Commit Your Changes

Use clear, descriptive commit messages:

Commit Message Format:

  • feat: New feature

  • fix: Bug fix

  • docs: Documentation changes

  • test: Adding or updating tests

  • refactor: Code refactoring

  • perf: Performance improvements

  • chore: Maintenance tasks

4. Submit Pull Request

  • Push to your fork

  • Create PR against main branch

  • Fill out the PR template

  • Link related issues

  • Request review from maintainers

PR Checklist:


Coding Standards

Kotlin (Android SDK)

Follow Kotlin Coding Conventionsarrow-up-right:

Key Principles:

  • Use meaningful variable names

  • Prefer immutability (val over var)

  • Avoid nested callbacks (use coroutines)

  • Document public APIs with KDoc

JavaScript/TypeScript (Web SDK)

Follow standard JavaScript best practices:


Security Considerations

⚠️ CRITICAL: Security-First Development

Constant-Time Operations

Always use constant-time comparisons for cryptographic operations:

Memory Wiping

Always wipe sensitive data from memory:

Secure Random Numbers

Use cryptographically secure random number generators:

Input Validation

Always validate and sanitize inputs:


Testing Requirements

Unit Tests

All new features must include unit tests:

Integration Tests

Test full authentication flows:


Documentation Standards

Code Comments

Document complex logic and security-critical code:

README Updates

When adding features, update relevant documentation:

  • Main README.md (if user-facing feature)

  • API documentation (for API changes)

  • Integration guides (for new integrations)

  • Examples (for new usage patterns)


Questions?


Recognition

Contributors will be:

  • Listed in CONTRIBUTORS.md

  • Credited in release notes

  • Invited to contributor events

Thank you for making NoTap better! 🙏


License: By contributing, you agree that your contributions will be licensed under the Apache License 2.0.

Last updated