We love your input! We want to make contributing to Refixly as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
- Node.js 18+ and npm 8+
- Git
-
Fork and Clone
git clone https://github.com/YOUR_USERNAME/refixly.git cd refixly -
Install Dependencies
npm run install:all
-
Environment Setup
cp env.example .env # Edit .env with your configuration -
Start Development Servers
npm run dev
npm run testnpm run test:coverage# Client tests
npm run test:client
# Server tests
npm run test:server# Check for linting issues
npm run lint
# Fix auto-fixable issues
npm run lint:fix# Format all files
npm run format
# Check formatting
npm run format:checkgit checkout -b feature/your-feature-name- Write your code
- Add tests for new functionality
- Update documentation if needed
# Run all quality checks
npm run lint
npm run test
npm run format:checkgit add .
git commit -m "feat: add your feature description"git push origin feature/your-feature-name- All tests pass
- Code is linted and formatted
- Documentation is updated
- No console.log statements in production code
- Environment variables are properly configured
Use the provided PR template and fill in all sections:
- Description of changes
- Type of change (bug fix, feature, etc.)
- Testing instructions
- Screenshots (if applicable)
- Use the bug report template
- Provide detailed reproduction steps
- Include expected vs actual behavior
- Add screenshots/videos if applicable
- Specify your environment (OS, browser, Node version)
**Bug Description**
Brief description of the issue
**Steps to Reproduce**
1. Go to '...'
2. Click on '...'
3. See error
**Expected Behavior**
What should happen
**Actual Behavior**
What actually happens
**Environment**
- OS: Windows 10
- Browser: Chrome 120
- Node: 18.17.0- Use the feature request template
- Describe the problem you're solving
- Propose a solution
- Consider implementation complexity
- Discuss alternatives
refixly/
├── client/ # React Frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── Pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ └── test/ # Test files
│ ├── vitest.config.js # Test configuration
│ └── package.json
├── server/ # Node.js Backend
│ ├── Controllers/ # Route controllers
│ ├── routes/ # API routes
│ ├── test/ # Test files
│ ├── jest.config.js # Test configuration
│ └── package.json
├── .github/ # GitHub workflows
├── .prettierrc # Code formatting
├── package.json # Root package.json
└── README.md
Look for issues labeled with:
good first issuehelp wantedbeginner-friendly
- Add unit tests for existing components
- Improve documentation
- Fix minor UI issues
- Add error handling
- Implement accessibility improvements
- ESLint
- Prettier
- Jest Runner
- GitLens
- Auto Rename Tag
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": ["javascript", "javascriptreact"]
}- Use functional components with hooks
- Prefer const over let
- Use template literals for string interpolation
- Use destructuring for props and state
- Add PropTypes or TypeScript for type checking
- Components: PascalCase (e.g.,
UserProfile) - Files: PascalCase for components, camelCase for utilities
- Variables: camelCase
- Constants: UPPER_SNAKE_CASE
- Use JSDoc for function documentation
- Add inline comments for complex logic
- Keep comments up to date with code changes
- Check Node.js version compatibility
- Clear node_modules and reinstall
- Verify environment variables
- Run tests locally before pushing
- Check for flaky tests
- Verify test environment setup
- Use
npm run lint:fixfor auto-fixable issues - Check ESLint configuration
- Verify Prettier integration
- Be respectful and inclusive
- Use clear, constructive language
- Ask questions when unsure
- Help others learn
- Be constructive and specific
- Focus on the code, not the person
- Suggest improvements respectfully
- Celebrate good work
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Refixly! Your efforts help make this project better for everyone.
Need Help? Open an issue or reach out to the maintainers!