Skip to content

Latest commit

 

History

History
172 lines (116 loc) · 4.12 KB

File metadata and controls

172 lines (116 loc) · 4.12 KB

🛠️ Contributing to OpenSc0ut

Thank you for considering a contribution!

Every bug fix, feature, and typo correction helps make OpenSc0ut better for everyone.


PRs Welcome Code of Conduct



📋 Table of Contents



🧭 Code of Conduct

By participating in this project, you are expected to uphold our Code of Conduct.

Please report unacceptable behavior to tanmaypatwary@gmail.com.



💡 How Can I Contribute?

🐛 Reporting Bugs

Important

Before submitting a bug report, please check if the issue already exists to avoid duplicates.

A great bug report includes:

  • ✅ A clear, descriptive title that identifies the problem
  • Exact steps to reproduce the behavior
  • ✅ What you expected to happen vs. what actually happened
  • ✅ Screenshots, error logs, or code snippets that illustrate the issue

→ Open a Bug Report


💬 Suggesting Enhancements

Have an idea that would make OpenSc0ut better? We'd love to hear it!

A great enhancement proposal includes:

  • ✅ A clear, descriptive title for the suggestion
  • ✅ A step-by-step description of the proposed feature
  • ✅ An explanation of why this would benefit most users
  • ✅ Any relevant mockups, diagrams, or examples

→ Open a Feature Request


🔀 Pull Requests

Note

Please ensure there is an open issue for the work you're doing before starting. This avoids duplicate effort.

Follow these steps:

Step Action
1 Fork the repository
2 Create a feature or bugfix branch
3 Write your code following our coding standards
4 Commit with a clear, descriptive message
5 Push to your fork and open a Pull Request

Branch Naming Convention:

feature/your-feature-name
bugfix/issue-number-short-description
docs/update-readme

Commit Message Convention:

# ✅ Good
feat: add sorting by open issue count
fix: correct API rate limit handling on GitHub endpoint
docs: update environment variable instructions

# ❌ Bad
fixed stuff
update
wip

Warning

Always merge the latest changes from upstream/main into your branch before opening a PR to avoid merge conflicts.



💻 Local Development Setup

1. Fork & Clone

git clone https://github.com/YOUR_USERNAME/OpenSc0ut.git
cd OpenSc0ut

2. Install dependencies

npm install

3. Set up environment variables

Create a .env.local file in the root:

NEXT_PUBLIC_GITHUB_TOKEN=your_github_token
GEMINI_API_KEY=your_gemini_api_key
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_password

4. Start the dev server

npm run dev

Visit http://localhost:3000 and you're ready to go! 🚀



📐 Coding Standards

Category Standard
Language TypeScript — strict typing required
Styling Tailwind CSS — reuse existing tokens and components
Linting Code must pass npm run lint with no errors
Formatting Follow the existing Prettier config
Components Keep components focused, reusable, and well-named
Animations Use Framer Motion consistently with the existing patterns


Thank you for helping make OpenSc0ut better. You're awesome. 🌟