Thank you for your interest in contributing to One Universal Identity! We welcome contributions from the community and are grateful for your help in making OUI better.
- Fork the repository
- Clone your fork locally
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Development Setup
- Project Structure
- Coding Standards
- Testing Guidelines
- Pull Request Process
- Security Considerations
- Documentation
- Community Guidelines
- Node.js >= 18.0.0
- npm >= 8.0.0
- Git >= 2.30.0
- Hardhat for smart contract development
- MetaMask or compatible Web3 wallet (for testing)
-
Clone the repository
git clone https://github.com/your-username/one-universal-identity.git cd one-universal-identity -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Edit .env with your configuration -
Compile smart contracts
npm run compile
-
Run tests
npm run test
# Start local blockchain (Hardhat node)
npm run node
# Start backend server (in another terminal)
npm start
# Frontend development (when available)
# npm run dev:frontend├── contracts/ # Smart contracts (Solidity)
│ ├── OUIIdentity.sol # Core identity management
│ ├── UVTToken.sol # Universal verification tokens
│ ├── DAO.sol # Decentralized governance
│ └── ...
├── src/
│ ├── backend/ # Express.js API server
│ ├── frontend/ # React/TypeScript web app
│ ├── mobile-sdk/ # Cross-platform mobile SDK
│ ├── ai-detection/ # AI/ML threat detection
│ ├── networks/ # Cross-chain functionality
│ └── ...
├── test/ # Test suites
├── docs/ # Documentation
├── scripts/ # Deployment scripts
└── examples/ # Usage examples
- Write clear, self-documenting code
- Follow the existing code style and patterns
- Keep functions and methods small and focused
- Use meaningful variable and function names
- Add comments for complex business logic
- Use ES6+ features appropriately
- Follow async/await patterns for asynchronous code
- Use TypeScript for type safety
- Follow camelCase naming convention
- Use const and let appropriately
- Handle errors gracefully with try/catch
- Follow Solidity Style Guide
- Use OpenZeppelin libraries when possible
- Implement proper access controls
- Include comprehensive NatSpec documentation
- Use safe math operations
- Implement emergency pause mechanisms
Follow Conventional Commits:
type(scope): description
[optional body]
[optional footer]
Types:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changesrefactor:- Code refactoringtest:- Test additions/updateschore:- Maintenance tasks
- Maintain test coverage above 95%
- Write tests for all new features
- Include both unit and integration tests
- Test error conditions and edge cases
- Use descriptive test names
# Run all contract tests
npm run test
# Run specific test file
npx hardhat test test/contracts/OUIIdentity.test.ts
# Run with gas reporting
npm run gas-report# Run backend tests
npm run test:backend
# Run with coverage
npm run test:backend:coverage# Run frontend component tests
npm run test:frontend
# Run end-to-end tests
npm run test:e2e- Ensure all tests pass
- Update documentation if needed
- Check for linting errors
- Test on multiple networks if applicable
- Review your changes thoroughly
- Clear, descriptive title
- Detailed description of changes
- Reference any related issues
- Include screenshots for UI changes
- Update tests if functionality changed
- Follow code standards
- Automated checks run on all PRs
- Maintainers review for code quality
- Security review for sensitive changes
- Testing on staging environment
- Final approval and merge
- Never commit sensitive information (API keys, private keys, passwords)
- Follow security best practices in all code
- Report security issues through proper channels (see SECURITY.md)
- Use secure coding patterns
- Validate all inputs
- Be extra cautious with contract upgrades
- Consider gas optimization but prioritize security
- Use established patterns from OpenZeppelin
- Include comprehensive testing
- Document security considerations
- Ensure model security and robustness
- Consider adversarial attacks
- Validate model performance thoroughly
- Document model limitations
- Include bias detection measures
- New features require documentation
- API changes need updated examples
- Architecture changes require diagram updates
- Setup changes need installation guide updates
- Use clear, concise language
- Include code examples for new features
- Update README.md for significant changes
- Keep API documentation current
- Include troubleshooting sections
- Bug fixes and performance improvements
- New features and enhancements
- Test coverage improvements
- Documentation updates
- Security hardening
- Bug reports and feature requests
- Documentation improvements
- Community support and evangelism
- Design and UX improvements
- Research and analysis
Contributors who make significant impacts may be:
- Acknowledged in release notes
- Featured on our website
- Invited to special events
- Considered for maintainer roles
- Nominated for community awards
- LinkedIn: AIdentiCore
- Twitter: @AidentiCore
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: Q&A and community discussions
- Discord: discord.gg/oui
- Documentation: docs.oui.com
- API Reference: api.oui.com
- Email: rajkumarrawal@aidenticore.com
By contributing to One Universal Identity, you agree that your contributions will be licensed under the same Apache License 2.0 that covers the project.
We'd like to thank all our contributors for helping make One Universal Identity better. Your time, expertise, and passion are what make open source great.
Contributors with exceptional contributions will be featured here
Last Updated: September 2025 Version: 1.0
Happy contributing! 🎉