Skip to content

Latest commit

 

History

History
140 lines (106 loc) · 2.93 KB

File metadata and controls

140 lines (106 loc) · 2.93 KB

Contributing to RefSpring 🤝

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

🚀 Getting Started

Prerequisites

  • Node.js 18+ and npm
  • Firebase account for development
  • Git

Development Setup

  1. Fork and clone the repository

    git clone https://github.com/your-username/refspring.git
    cd refspring
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env
    # Add your Firebase configuration
  4. Start development server

    npm run dev

📝 How to Contribute

🐛 Reporting Bugs

  • Use the Bug Report template
  • Include steps to reproduce
  • Add screenshots if applicable
  • Specify browser and version

✨ Suggesting Features

🔧 Code Contributions

  1. Create a feature branch

    git checkout -b feature/amazing-feature
  2. Make your changes

    • Follow our coding standards
    • Add tests if applicable
    • Update documentation
  3. Commit your changes

    git commit -m "feat: add amazing feature"
  4. Push and create a PR

    git push origin feature/amazing-feature

📋 Coding Standards

TypeScript

  • Use strict TypeScript
  • Prefer interfaces over types
  • Add proper JSDoc comments

React

  • Use functional components with hooks
  • Follow the existing component structure
  • Keep components small and focused

Styling

  • Use Tailwind CSS classes
  • Follow the existing design system
  • Ensure responsive design

Git Commits

We follow Conventional Commits:

  • feat: new features
  • fix: bug fixes
  • docs: documentation changes
  • style: formatting changes
  • refactor: code refactoring
  • test: adding tests
  • chore: maintenance tasks

🔍 Pull Request Process

  1. Update documentation if needed
  2. Add tests for new features
  3. Ensure all tests pass
  4. Update the CHANGELOG.md
  5. Request review from maintainers

🏗️ Project Structure

src/
├── components/     # Reusable UI components
├── hooks/         # Custom React hooks
├── pages/         # Application pages
├── lib/           # Utilities and configuration
├── types/         # TypeScript definitions
└── i18n/          # Internationalization

🧪 Testing

# Run tests (when available)
npm test

# Run linting
npm run lint

# Type checking
npm run type-check

💬 Getting Help

📄 License

By contributing, you agree that your contributions will be licensed under the MIT License.