5.3 KiB
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
- Getting Started
- Development Setup
- Making Changes
- Pull Request Process
- Style Guidelines
- Reporting Bugs
- Suggesting Features
📜 Code of Conduct
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
🚀 Getting Started
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/GeminiNexusManager.git cd Gemini NexusManager - Add the upstream remote:
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
# 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
-
Create a new branch from
main:git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes and commit them:
git add . git commit -m "feat: add amazing new feature" -
Keep your branch updated:
git fetch upstream git rebase upstream/main
Commit Message Guidelines
We follow Conventional Commits. Each commit message should be structured as follows:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
Types:
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that don't affect code meaning (formatting, etc.)refactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementtest: Adding or correcting testschore: 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
- Update documentation if you're changing functionality
- Add tests for new features
- Ensure all tests pass:
npm run test:all - Ensure code is formatted:
npm run format:write - Ensure no lint errors:
npm run lint - 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 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 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.