186 lines
5.3 KiB
Markdown
186 lines
5.3 KiB
Markdown
# Contributing to Gemini Nexus
|
|
|
|
First off, thank you for considering contributing to Gemini Nexus! 🎉
|
|
|
|
It's people like you that make Gemini Nexus such a great tool. We welcome contributions from everyone, whether it's a bug report, feature suggestion, documentation improvement, or code contribution.
|
|
|
|
## 📋 Table of Contents
|
|
|
|
- [Code of Conduct](#code-of-conduct)
|
|
- [Getting Started](#getting-started)
|
|
- [Development Setup](#development-setup)
|
|
- [Making Changes](#making-changes)
|
|
- [Pull Request Process](#pull-request-process)
|
|
- [Style Guidelines](#style-guidelines)
|
|
- [Reporting Bugs](#reporting-bugs)
|
|
- [Suggesting Features](#suggesting-features)
|
|
|
|
## 📜 Code of Conduct
|
|
|
|
This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
|
|
|
|
## 🚀 Getting Started
|
|
|
|
1. **Fork the repository** on GitHub
|
|
2. **Clone your fork** locally:
|
|
```bash
|
|
git clone https://github.com/YOUR_USERNAME/GeminiNexusManager.git
|
|
cd Gemini NexusManager
|
|
```
|
|
3. **Add the upstream remote**:
|
|
```bash
|
|
git remote add upstream https://github.com/Draculabo/AntigravityManager.git
|
|
```
|
|
|
|
## 💻 Development Setup
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js v18 or higher
|
|
- npm (comes with Node.js)
|
|
- Git
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm start
|
|
```
|
|
|
|
### Available Scripts
|
|
|
|
| Command | Description |
|
|
| ---------------------- | ----------------------------------- |
|
|
| `npm start` | Start the app in development mode |
|
|
| `npm run lint` | Run ESLint to check for code issues |
|
|
| `npm run format:write` | Format code with Prettier |
|
|
| `npm run test:unit` | Run unit tests with Vitest |
|
|
| `npm run test:e2e` | Run E2E tests with Playwright |
|
|
| `npm run test:all` | Run all tests |
|
|
| `npm run type-check` | Run TypeScript type checking |
|
|
| `npm run make` | Build production packages |
|
|
|
|
## ✏️ Making Changes
|
|
|
|
1. **Create a new branch** from `main`:
|
|
|
|
```bash
|
|
git checkout -b feature/your-feature-name
|
|
# or
|
|
git checkout -b fix/your-bug-fix
|
|
```
|
|
|
|
2. **Make your changes** and commit them:
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "feat: add amazing new feature"
|
|
```
|
|
|
|
3. **Keep your branch updated**:
|
|
```bash
|
|
git fetch upstream
|
|
git rebase upstream/main
|
|
```
|
|
|
|
### Commit Message Guidelines
|
|
|
|
We follow [Conventional Commits](https://www.conventionalcommits.org/). Each commit message should be structured as follows:
|
|
|
|
```
|
|
<type>(<scope>): <description>
|
|
|
|
[optional body]
|
|
|
|
[optional footer(s)]
|
|
```
|
|
|
|
**Types:**
|
|
|
|
- `feat`: A new feature
|
|
- `fix`: A bug fix
|
|
- `docs`: Documentation only changes
|
|
- `style`: Changes that don't affect code meaning (formatting, etc.)
|
|
- `refactor`: Code change that neither fixes a bug nor adds a feature
|
|
- `perf`: Performance improvement
|
|
- `test`: Adding or correcting tests
|
|
- `chore`: Changes to build process or auxiliary tools
|
|
|
|
**Examples:**
|
|
|
|
```
|
|
feat(auth): add Google OAuth support
|
|
fix(quota): resolve quota refresh timeout issue
|
|
docs(readme): update installation instructions
|
|
```
|
|
|
|
## 🔄 Pull Request Process
|
|
|
|
1. **Update documentation** if you're changing functionality
|
|
2. **Add tests** for new features
|
|
3. **Ensure all tests pass**: `npm run test:all`
|
|
4. **Ensure code is formatted**: `npm run format:write`
|
|
5. **Ensure no lint errors**: `npm run lint`
|
|
6. **Push to your fork** and create a Pull Request
|
|
|
|
### PR Checklist
|
|
|
|
- [ ] My code follows the project's style guidelines
|
|
- [ ] I have performed a self-review of my code
|
|
- [ ] I have commented my code, particularly in hard-to-understand areas
|
|
- [ ] I have made corresponding changes to the documentation
|
|
- [ ] My changes generate no new warnings
|
|
- [ ] I have added tests that prove my fix is effective or my feature works
|
|
- [ ] New and existing unit tests pass locally with my changes
|
|
|
|
## 🎨 Style Guidelines
|
|
|
|
### TypeScript/JavaScript
|
|
|
|
- Use TypeScript for all new code
|
|
- Follow the existing code style (enforced by ESLint and Prettier)
|
|
- Use meaningful variable and function names
|
|
- Add JSDoc comments for public APIs
|
|
|
|
### React Components
|
|
|
|
- Use functional components with hooks
|
|
- Keep components small and focused
|
|
- Use TypeScript interfaces for props
|
|
- Follow the existing file structure
|
|
|
|
### CSS/Styling
|
|
|
|
- Use TailwindCSS utility classes
|
|
- Follow the design system in `components.json`
|
|
- Ensure responsive design
|
|
|
|
## 🐛 Reporting Bugs
|
|
|
|
Found a bug? Please [create an issue](https://github.com/Draculabo/AntigravityManager/issues/new?template=bug_report.md) with:
|
|
|
|
- **Clear title** describing the issue
|
|
- **Steps to reproduce** the behavior
|
|
- **Expected behavior** vs actual behavior
|
|
- **Screenshots** if applicable
|
|
- **Environment details** (OS, app version)
|
|
|
|
## 💡 Suggesting Features
|
|
|
|
Have an idea? Please [create an issue](https://github.com/Draculabo/AntigravityManager/issues/new?template=feature_request.md) with:
|
|
|
|
- **Clear description** of the feature
|
|
- **Use case** - why is this feature needed?
|
|
- **Possible implementation** ideas (optional)
|
|
|
|
## 🙏 Thank You
|
|
|
|
Your contributions help make Gemini Nexus better for everyone. Thank you for taking the time to contribute!
|
|
|
|
---
|
|
|
|
If you have any questions, feel free to open an issue or reach out to the maintainers.
|