Skip to content

Latest commit

 

History

History
159 lines (109 loc) · 4.46 KB

File metadata and controls

159 lines (109 loc) · 4.46 KB

Contributing to CrisisKit Lite 🤝

Thank you for considering contributing to CrisisKit Lite! This project was born from real disaster response, and every contribution helps make crisis coordination more effective for communities worldwide.

🌟 Ways to Contribute

1. Report Bugs 🐛

If you find a bug, please open an issue with:

  • Clear title: Describe the issue in one sentence
  • Steps to reproduce: How can we see the bug?
  • Expected behavior: What should happen?
  • Actual behavior: What actually happens?
  • Screenshots: If applicable
  • Environment: Browser, OS, device type

2. Suggest Features 💡

Have an idea to make CrisisKit better? Open a feature request with:

  • Use case: Why is this feature needed?
  • Proposed solution: How should it work?
  • Alternatives considered: What other approaches did you think about?
  • Crisis context: How does this help in real emergencies?

3. Improve Documentation 📝

Documentation is crucial for crisis tools! You can:

  • Fix typos or unclear instructions
  • Add missing setup steps
  • Translate to other languages
  • Add real-world use case examples
  • Improve code comments

4. Submit Code 🔧

Getting Started

# Fork the repository on GitHub
# Clone your fork
git clone https://github.com/YOUR_USERNAME/crisiskit-lite.git
cd crisiskit-lite

# Install dependencies
npm install

# Create a branch for your feature
git checkout -b feature/your-feature-name

# Start development server
npm run dev

Before Submitting a Pull Request

  1. Test your changes thoroughly
  2. Follow existing code style (we use TypeScript + React best practices)
  3. Keep changes focused - one feature or fix per PR
  4. Update documentation if you changed functionality
  5. Write clear commit messages

Pull Request Process

  1. Push your branch to your fork
  2. Open a Pull Request with:
    • Clear title: What does this PR do?
    • Description: Why is this change needed?
    • Testing: How did you test it?
    • Screenshots: If UI changes
  3. Wait for review (we'll respond within 48 hours)
  4. Address any feedback
  5. Celebrate when merged! 🎉

🎯 Code Guidelines

TypeScript

  • Use TypeScript for all new code
  • Define types for props and data structures
  • Avoid any - use proper types

React

  • Use functional components with hooks
  • Keep components small and focused
  • Extract reusable logic into custom hooks

Styling

  • Use Tailwind CSS utility classes
  • Follow mobile-first responsive design
  • Maintain accessibility (ARIA labels, keyboard navigation)

Crisis UX Principles

Remember these when contributing:

  • Speed over perfection - Every second counts in a crisis
  • 📱 Mobile-first - Most crisis users are on phones
  • 🧩 Minimal inputs - Reduce cognitive load
  • 🔊 Broadcast-friendly - Links will be shared via WhatsApp/SMS
  • 🧘 Emotional safety - UI should reduce panic, not increase it

🌍 Translation

We welcome translations! To add a new language:

  1. Create a new file in /locales/[language-code].json
  2. Copy the structure from /locales/en.json
  3. Translate all strings
  4. Test the UI in your language
  5. Submit a PR

❓ Questions?

📜 Code of Conduct

Our Pledge

This project is built to help communities in crisis. We pledge to:

  • Be respectful and inclusive
  • Welcome contributors of all backgrounds
  • Focus on what's best for the community
  • Show empathy and kindness

Unacceptable Behavior

  • Harassment or discriminatory language
  • Trolling or insulting comments
  • Political or personal attacks
  • Publishing others' private information

Enforcement

Violations may result in temporary or permanent ban from the project. Report issues to hello@sparksverse.com.

🙏 Recognition

All contributors will be:

  • Listed in our README
  • Acknowledged in release notes
  • Part of a project that helps real communities

Thank you for helping build technology that matters! 💪


Every contribution, no matter how small, helps save time in the next crisis.