Thank you for your interest in contributing to EverAid! This document provides guidelines and information for contributors.
EverAid is an open-source emergency AI assistant built for the OpenAI OSS Hackathon. Our goal is to create a tool that can save lives by providing clear, actionable guidance in crisis situations - whether online or offline.
- Node.js 18+
- npm or yarn
- Git
- Basic knowledge of React/React Native
# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/EverAid.git
cd EverAid
# Install dependencies
npm install
# Copy environment file
cp .env.example .env
# Start development server
npm run start- Bug fixes - Help us make EverAid more reliable
- Feature improvements - Enhance user experience and functionality
- Documentation - Make EverAid easier to understand and use
- Testing - Help ensure quality and reliability
- Localization - Add support for more languages
- Accessibility - Make EverAid usable by everyone
- Medical advice changes without professional review
- Security-related changes without proper discussion
- Breaking changes without thorough testing
- Dependencies that significantly increase bundle size
- Check existing issues first
- Create a new issue if needed
- Discuss your approach before coding
- Get feedback on design decisions
# Create a feature branch
git checkout -b feature/your-feature-name
# Or for bug fixes
git checkout -b fix/bug-description- Follow existing code style and patterns
- Write clear commit messages
- Test your changes thoroughly
- Update documentation if needed
# Run basic tests
npm run test
# Test AI integration
npm run test:ai
# Test offline functionality
npm run test:offline- Use functional components with hooks
- Prefer TypeScript for new code
- Follow React best practices
- Use meaningful component names
- Use Tailwind CSS classes
- Follow the existing design system
- Maintain dark theme consistency
- Ensure high contrast for accessibility
components/
ComponentName/
index.tsx # Main component
ComponentName.test.tsx # Tests
types.ts # TypeScript types
styles.ts # Custom styles (if needed)
- Test all new functions and components
- Mock external dependencies
- Test edge cases and error conditions
- Maintain good test coverage
- Test AI integration thoroughly
- Validate offline functionality
- Test cross-platform compatibility
- Verify emergency pack creation
- Test on both iOS and Android
- Verify offline behavior
- Test emergency scenarios
- Check accessibility features
- Explain complex logic
- Document API interfaces
- Include usage examples
- Keep comments up-to-date
- Update installation instructions
- Document new features
- Include screenshots for UI changes
- Update environment variables
- Document new endpoints
- Include request/response examples
- Document error codes
- Update integration guides
- Never log sensitive user information
- Use secure storage methods
- Follow privacy best practices
- Document data handling
- Validate all inputs
- Sanitize user content
- Use secure authentication
- Follow OWASP guidelines
- All health content must be reviewed
- Include appropriate disclaimers
- Prioritize user safety
- Provide clear escalation paths
- Test emergency procedures
- Validate step sequences
- Include safety warnings
- Document limitations
- Code follows style guidelines
- Tests pass locally
- Documentation is updated
- No breaking changes
- Security review completed
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Test improvement
## Testing
Describe how you tested your changes
## Screenshots (if applicable)
Add screenshots for UI changes
## Checklist
- [ ] Code follows style guidelines
- [ ] Tests pass
- [ ] Documentation updated
- [ ] No console errors- Follow semantic versioning (MAJOR.MINOR.PATCH)
- Update CHANGELOG.md
- Tag releases in GitHub
- Update package.json versions
- All tests pass
- Documentation updated
- Changelog updated
- Version bumped
- Release notes written
- Assets attached
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - General questions and ideas
- Pull Requests - Code reviews and feedback
- All contributors will be listed in README.md
- Significant contributions get special recognition
- Regular contributors may be invited as maintainers
- Be respectful and inclusive
- Help others learn and grow
- Focus on constructive feedback
- Report inappropriate behavior
By contributing to EverAid, you agree that your contributions will be licensed under the same license as the project (Apache License 2.0).
Thank you for helping make EverAid better for everyone! 🚨❤️
Together we can build tools that save lives.