Thank you for your interest in contributing to Predictify! This document provides guidelines and instructions for contributing.
- Fork the repository and clone your fork
- Create a branch for your feature:
git checkout -b feature/your-feature-name - Make your changes following our coding standards
- Test your changes thoroughly
- Submit a pull request with a clear description
See the README.md for detailed setup instructions.
- Use TypeScript for all new code
- Enable strict mode (already configured)
- Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Use functional components with hooks
- Prefer named exports over default exports
- Keep components small and focused (single responsibility)
- Use TypeScript interfaces for props
- Group related files in the same directory
- Use index files for clean imports
- Follow the existing project structure
// components/feature/FeatureComponent.tsx
import { useState } from 'react';
interface FeatureComponentProps {
title: string;
onAction: () => void;
}
export function FeatureComponent({ title, onAction }: FeatureComponentProps) {
const [state, setState] = useState<string>('');
return (
<div>
<h1>{title}</h1>
<button onClick={onAction}>Action</button>
</div>
);
}Follow the Conventional Commits format:
type(scope): subject
body (optional)
footer (optional)
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
feat(wallet): add support for XBull wallet
fix(events): resolve pagination issue on events page
docs(readme): update setup instructions
- Write tests for new features
- Ensure all tests pass:
pnpm test - Aim for good test coverage
- Test both success and error cases
- Update documentation if needed
- Add tests for new features
- Ensure all checks pass:
pnpm validate(type-check, lint, test)- Build succeeds:
pnpm build
- Write a clear PR description:
- What changes were made
- Why they were made
- How to test
- Screenshots if UI changes
- Be respectful and constructive
- Address all review comments
- Keep PRs focused and reasonably sized
- Respond to feedback promptly
Open an issue or contact the maintainers. We're here to help!
Thank you for contributing to Predictify! 🚀