chore: add GPRG V2
This commit is contained in:
+280
-12
@@ -1,7 +1,6 @@
|
||||
# Contributing
|
||||
# Contributing to GitHub Profile README Generator
|
||||
|
||||
When contributing to this repository, please first discuss the change you wish to make via issue,
|
||||
email, or any other method with the owners of this repository before making a change.
|
||||
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
|
||||
|
||||
<a href="https://discord.gg/HHMs7Eg" target="blank">
|
||||
<img src="https://img.shields.io/discord/735303195105951764?color=%23677BC4&label=Join%20Community&style=flat-square" alt="join discord community of github profile readme generator"/>
|
||||
@@ -9,13 +8,282 @@ email, or any other method with the owners of this repository before making a ch
|
||||
|
||||
Please note we have a code of conduct, please follow it in all your interactions with the project.
|
||||
|
||||
## Pull Request Process
|
||||
## 🚀 Tech Stack
|
||||
|
||||
1. Ensure any install or build dependencies are removed before the end of the layer when doing a
|
||||
build.
|
||||
2. Update the README.md with details of changes to the interface, this includes new environment
|
||||
variables, exposed ports, useful file locations and container parameters.
|
||||
3. Increase the version numbers in any examples files and the README.md to the new version that this
|
||||
Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
|
||||
4. You may merge the Pull Request once you have the sign-off of two other developers, or if you
|
||||
do not have permission to do that, you may request the second reviewer merge it for you.
|
||||
This project is built with modern web technologies:
|
||||
|
||||
- **Framework**: [Next.js 15](https://nextjs.org/) with App Router
|
||||
- **Language**: [TypeScript](https://www.typescriptlang.org/) for type safety
|
||||
- **Styling**: [Tailwind CSS](https://tailwindcss.com/) for utility-first styling
|
||||
- **Icons**: [Lucide React](https://lucide.dev/) for consistent iconography
|
||||
- **Animations**: [Framer Motion](https://www.framer.com/motion/) for smooth animations
|
||||
- **Forms**: [React Hook Form](https://react-hook-form.com/) for form management
|
||||
- **Analytics**: [Google Analytics 4](https://developers.google.com/analytics/devguides/collection/ga4) with privacy compliance
|
||||
- **Testing**: [Vitest](https://vitest.dev/) for unit testing
|
||||
- **Linting**: [ESLint](https://eslint.org/) + [Prettier](https://prettier.io/) for code quality
|
||||
|
||||
## 🛠️ Development Setup
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- **Node.js**: Version 18.17 or higher
|
||||
- **npm**: Version 9 or higher (comes with Node.js)
|
||||
- **Git**: For version control
|
||||
|
||||
### Local Development
|
||||
|
||||
1. **Fork & Clone the repository**
|
||||
|
||||
```bash
|
||||
# Fork the repo on GitHub, then clone your fork
|
||||
git clone https://github.com/YOUR_USERNAME/github-profile-readme-generator.git
|
||||
cd github-profile-readme-generator
|
||||
```
|
||||
|
||||
2. **Install dependencies**
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
3. **Set up environment variables** (optional)
|
||||
|
||||
```bash
|
||||
# Copy the example environment file
|
||||
cp env.example .env.local
|
||||
|
||||
# Add your Google Analytics ID if you want to test analytics
|
||||
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX
|
||||
```
|
||||
|
||||
4. **Start the development server**
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
The app will be available at `http://localhost:3000`
|
||||
|
||||
### Available Scripts
|
||||
|
||||
```bash
|
||||
# Development
|
||||
npm run dev # Start development server
|
||||
npm run build # Build for production
|
||||
npm run start # Start production server
|
||||
npm run export # Export static site
|
||||
|
||||
# Code Quality
|
||||
npm run lint # Run ESLint
|
||||
npm run lint:fix # Fix ESLint issues automatically
|
||||
npm run type-check # Run TypeScript type checking
|
||||
|
||||
# Testing
|
||||
npm run test # Run tests
|
||||
npm run test:watch # Run tests in watch mode
|
||||
npm run test:ui # Run tests with UI
|
||||
```
|
||||
|
||||
## 📝 Pull Request Process
|
||||
|
||||
### Before You Start
|
||||
|
||||
1. **Check existing issues** to see if your feature/bug is already being worked on
|
||||
2. **Create an issue** if one doesn't exist for your contribution
|
||||
3. **Join our Discord** to discuss your ideas with the community
|
||||
4. **Read our [Code Style Guide](CODE_STYLE_GUIDE.md)** to understand our coding standards
|
||||
|
||||
### Making Changes
|
||||
|
||||
1. **Create a feature branch** from `main`
|
||||
|
||||
```bash
|
||||
git checkout -b feature/your-feature-name
|
||||
# or
|
||||
git checkout -b fix/bug-description
|
||||
```
|
||||
|
||||
2. **Follow our coding standards**
|
||||
- Use TypeScript with strict mode
|
||||
- Follow the existing code style (ESLint + Prettier)
|
||||
- Write meaningful commit messages
|
||||
- Add tests for new features
|
||||
- Update documentation if needed
|
||||
|
||||
3. **Test your changes**
|
||||
|
||||
```bash
|
||||
# Run all checks before submitting
|
||||
npm run lint # Check code style
|
||||
npm run type-check # Check TypeScript
|
||||
npm run test # Run tests
|
||||
npm run build # Ensure it builds successfully
|
||||
```
|
||||
|
||||
4. **Commit your changes**
|
||||
|
||||
```bash
|
||||
# Use conventional commit messages
|
||||
git add .
|
||||
git commit -m "feat: add new skill category filter"
|
||||
# or
|
||||
git commit -m "fix: resolve mobile navigation issue"
|
||||
```
|
||||
|
||||
### Submitting Your PR
|
||||
|
||||
1. **Push your branch**
|
||||
|
||||
```bash
|
||||
git push origin feature/your-feature-name
|
||||
```
|
||||
|
||||
2. **Create a Pull Request** on GitHub with:
|
||||
- Clear title describing the change
|
||||
- Detailed description of what was changed and why
|
||||
- Screenshots for UI changes
|
||||
- Reference to any related issues
|
||||
|
||||
3. **PR Requirements**:
|
||||
- ✅ All tests pass
|
||||
- ✅ No TypeScript errors
|
||||
- ✅ ESLint passes
|
||||
- ✅ Builds successfully
|
||||
- ✅ Follows our code style guide
|
||||
- ✅ Includes tests for new features
|
||||
- ✅ Updates documentation if needed
|
||||
|
||||
### Review Process
|
||||
|
||||
1. **Automated checks** will run on your PR
|
||||
2. **Maintainers** will review your code
|
||||
3. **Address feedback** by pushing new commits to your branch
|
||||
4. **Merge** happens after approval from maintainers
|
||||
|
||||
## 🎯 Contribution Guidelines
|
||||
|
||||
### What We're Looking For
|
||||
|
||||
- **Bug fixes** with clear reproduction steps
|
||||
- **New features** that align with the project's goals
|
||||
- **Performance improvements** with benchmarks
|
||||
- **Accessibility improvements** following WCAG guidelines
|
||||
- **Documentation** improvements and translations
|
||||
- **Test coverage** improvements
|
||||
|
||||
### Areas That Need Help
|
||||
|
||||
- 🌍 **Internationalization** (i18n) support
|
||||
- 📱 **Mobile experience** improvements
|
||||
- ♿ **Accessibility** enhancements
|
||||
- 🎨 **UI/UX** improvements
|
||||
- 🧪 **Test coverage** expansion
|
||||
- 📚 **Documentation** improvements
|
||||
- 🔧 **Developer experience** tools
|
||||
|
||||
### Component Development
|
||||
|
||||
When creating new components:
|
||||
|
||||
```tsx
|
||||
// Follow this structure for new components
|
||||
interface ComponentProps {
|
||||
// Define clear prop types
|
||||
title: string;
|
||||
onAction?: () => void;
|
||||
variant?: 'primary' | 'secondary';
|
||||
}
|
||||
|
||||
export const Component = ({ title, onAction, variant = 'primary' }: ComponentProps) => {
|
||||
// Component logic here
|
||||
|
||||
return <div className="component-styles">{/* JSX here */}</div>;
|
||||
};
|
||||
```
|
||||
|
||||
### File Organization
|
||||
|
||||
```
|
||||
src/
|
||||
├── app/ # Next.js app directory
|
||||
├── components/ # Reusable UI components
|
||||
│ ├── forms/ # Form-related components
|
||||
│ ├── layout/ # Layout components
|
||||
│ ├── sections/ # Page sections
|
||||
│ └── ui/ # Basic UI components
|
||||
├── hooks/ # Custom React hooks
|
||||
├── lib/ # Utility functions and configurations
|
||||
├── types/ # TypeScript type definitions
|
||||
└── constants/ # Application constants
|
||||
```
|
||||
|
||||
## 🐛 Reporting Bugs
|
||||
|
||||
When reporting bugs, please include:
|
||||
|
||||
1. **Steps to reproduce** the bug
|
||||
2. **Expected behavior** vs actual behavior
|
||||
3. **Screenshots** or screen recordings if applicable
|
||||
4. **Browser/OS information**
|
||||
5. **Console errors** if any
|
||||
|
||||
Use our [bug report template](https://github.com/rahuldkjain/github-profile-readme-generator/issues/new/choose) for consistency.
|
||||
|
||||
## 💡 Suggesting Features
|
||||
|
||||
For feature requests:
|
||||
|
||||
1. **Check existing issues** to avoid duplicates
|
||||
2. **Describe the problem** you're trying to solve
|
||||
3. **Propose a solution** with examples
|
||||
4. **Consider the impact** on existing users
|
||||
5. **Be open to discussion** and alternative approaches
|
||||
|
||||
## 🏷️ Issue Labels
|
||||
|
||||
We use labels to organize issues:
|
||||
|
||||
- `bug` - Something isn't working
|
||||
- `enhancement` - New feature or request
|
||||
- `good first issue` - Good for newcomers
|
||||
- `help wanted` - Extra attention is needed
|
||||
- `documentation` - Improvements to docs
|
||||
- `accessibility` - A11y improvements
|
||||
- `performance` - Performance improvements
|
||||
|
||||
## 📋 Code Review Checklist
|
||||
|
||||
Before requesting review, ensure:
|
||||
|
||||
- [ ] Code follows our style guide
|
||||
- [ ] All tests pass locally
|
||||
- [ ] TypeScript compiles without errors
|
||||
- [ ] ESLint passes without warnings
|
||||
- [ ] Component is accessible (proper ARIA labels, keyboard navigation)
|
||||
- [ ] Mobile-responsive design
|
||||
- [ ] Performance considerations addressed
|
||||
- [ ] Documentation updated if needed
|
||||
- [ ] Commit messages are clear and descriptive
|
||||
|
||||
## 🎉 Recognition
|
||||
|
||||
Contributors are recognized in:
|
||||
|
||||
- **README.md** contributors section
|
||||
- **All Contributors** bot for automated recognition
|
||||
- **Release notes** for significant contributions
|
||||
- **Discord community** shoutouts
|
||||
|
||||
## 📞 Getting Help
|
||||
|
||||
- **Discord**: [Join our community](https://discord.gg/HHMs7Eg)
|
||||
- **Issues**: [GitHub Issues](https://github.com/rahuldkjain/github-profile-readme-generator/issues)
|
||||
- **Discussions**: [GitHub Discussions](https://github.com/rahuldkjain/github-profile-readme-generator/discussions)
|
||||
|
||||
## 📄 License
|
||||
|
||||
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT License).
|
||||
|
||||
---
|
||||
|
||||
Thank you for contributing to GitHub Profile README Generator! 🚀
|
||||
|
||||
Reference in New Issue
Block a user