Thank you for your interest in contributing to RefSpring! We welcome contributions from the community.
- Node.js 18+ and npm
- Firebase account for development
- Git
-
Fork and clone the repository
git clone https://github.com/your-username/refspring.git cd refspring -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Add your Firebase configuration -
Start development server
npm run dev
- Use the Bug Report template
- Include steps to reproduce
- Add screenshots if applicable
- Specify browser and version
- Use the Feature Request template
- Describe the problem you're solving
- Explain your proposed solution
-
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
- Follow our coding standards
- Add tests if applicable
- Update documentation
-
Commit your changes
git commit -m "feat: add amazing feature" -
Push and create a PR
git push origin feature/amazing-feature
- Use strict TypeScript
- Prefer interfaces over types
- Add proper JSDoc comments
- Use functional components with hooks
- Follow the existing component structure
- Keep components small and focused
- Use Tailwind CSS classes
- Follow the existing design system
- Ensure responsive design
We follow Conventional Commits:
feat:new featuresfix:bug fixesdocs:documentation changesstyle:formatting changesrefactor:code refactoringtest:adding testschore:maintenance tasks
- Update documentation if needed
- Add tests for new features
- Ensure all tests pass
- Update the CHANGELOG.md
- Request review from maintainers
src/
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks
├── pages/ # Application pages
├── lib/ # Utilities and configuration
├── types/ # TypeScript definitions
└── i18n/ # Internationalization
# Run tests (when available)
npm test
# Run linting
npm run lint
# Type checking
npm run type-check- 📖 Check the documentation
- 💬 Join our Discord
- 📧 Email: support@refspring.com
By contributing, you agree that your contributions will be licensed under the MIT License.