Thank you for your interest in contributing to Voteguard! This document provides guidelines and instructions for contributing.
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on constructive feedback
- Respect differing viewpoints and experiences
- Fork the repository
- Clone your fork: `git clone https://github.com/yourusername/voteguard.git\`
- Create a branch: `git checkout -b feature/your-feature-name`
- Make your changes
- Test your changes thoroughly
- Commit with clear messages: `git commit -m "Add feature: description"`
- Push to your fork: `git push origin feature/your-feature-name`
- Open a Pull Request
- Follow the existing code style
- Use TypeScript for type safety
- Write meaningful variable and function names
- Add comments for complex logic
- Use Prettier for formatting
- Run ESLint before committing
- Avoid using `any` type
- Define proper interfaces and types
- Use strict type checking
- Export types from `types/index.ts`
- Use functional components with hooks
- Keep components small and focused
- Extract reusable logic into custom hooks
- Use proper prop types
- Add accessibility attributes
- Write tests for new features
- Ensure existing tests pass
- Test edge cases
- Test accessibility
- Use clear, descriptive commit messages
- Follow conventional commits format:
- `feat:` for new features
- `fix:` for bug fixes
- `docs:` for documentation
- `style:` for formatting
- `refactor:` for code refactoring
- `test:` for tests
- `chore:` for maintenance
- Provide a clear description
- Reference related issues
- Include screenshots for UI changes
- Ensure CI passes
- Request review from maintainers
- `app/` - Next.js pages and routes
- `components/` - React components
- `lib/` - Utilities and helpers
- `types/` - TypeScript type definitions
- `config/` - Configuration files
- `services/` - API services
Feel free to open an issue for questions or discussions.
Thank you for contributing!