|
| 1 | +# Contributing to Project Talos |
| 2 | + |
| 3 | +Welcome! 🎉 |
| 4 | +We’re thrilled you’re considering contributing to **Project Talos**, the official website of the ASME Chapter at NIT Rourkela, built by the OpenCode community. |
| 5 | + |
| 6 | +Whether it's a bug report, feature suggestion, design improvement, or pull request — **every contribution matters**. |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +## 🧭 Table of Contents |
| 11 | + |
| 12 | +- [Getting Started](#getting-started) |
| 13 | +- [How to Contribute](#how-to-contribute) |
| 14 | +- [Code Style](#code-style) |
| 15 | +- [Branching & Commits](#branching--commits) |
| 16 | +- [Pull Request Guidelines](#pull-request-guidelines) |
| 17 | +- [Code of Conduct](#code-of-conduct) |
| 18 | +- [Need Help?](#need-help) |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## 🚀 Getting Started |
| 23 | + |
| 24 | +1. **Fork the repository** |
| 25 | +2. **Clone your fork** |
| 26 | + ```bash |
| 27 | + git clone https://github.com/your-username/project-talos.git |
| 28 | + cd project-talos |
| 29 | + ``` |
| 30 | +3. **Install dependencies** |
| 31 | + ```bash |
| 32 | + npm install |
| 33 | + ``` |
| 34 | +4. **Start the development server** |
| 35 | + ```bash |
| 36 | + npm run dev |
| 37 | + ``` |
| 38 | + |
| 39 | +- Visit: [`http://localhost:5173`](http://localhost:5173) |
| 40 | + - `/` → Coming Soon page |
| 41 | + - `/playground` → Development space |
| 42 | + |
| 43 | +--- |
| 44 | + |
| 45 | +## 🛠 How to Contribute |
| 46 | + |
| 47 | +- **Report Bugs**: Open an issue describing the problem clearly. |
| 48 | +- **Suggest Features**: Share your ideas via issues or discussions. |
| 49 | +- **Submit Code**: Tackle an issue or build something new. |
| 50 | +- **Improve UI/UX**: Propose or implement visual improvements. |
| 51 | +- **Enhance Docs**: Help us keep docs and README accurate. |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## 🎨 Code Style |
| 56 | + |
| 57 | +We enforce consistent formatting and linting: |
| 58 | + |
| 59 | +- **Prettier** for formatting |
| 60 | +- **ESLint** for code correctness |
| 61 | +- **Husky** runs pre-commit checks automatically |
| 62 | + |
| 63 | +Run locally before committing: |
| 64 | + |
| 65 | +```bash |
| 66 | +npx prettier . --write |
| 67 | +npx eslint . --ext .js,.jsx |
| 68 | +``` |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +## 🌳 Branching & Commits |
| 73 | + |
| 74 | +- Base all work on the `main` branch |
| 75 | + |
| 76 | +- Use **feature branches**: |
| 77 | + |
| 78 | + ```bash |
| 79 | + git checkout -b feature/your-feature-name |
| 80 | + ``` |
| 81 | + |
| 82 | +- Follow conventional commit messages: |
| 83 | + |
| 84 | + ```bash |
| 85 | + <type>[optional scope]: <short message> |
| 86 | + ``` |
| 87 | + |
| 88 | + #### 📌 Allowed Types |
| 89 | + |
| 90 | + | Type | Purpose | Example | |
| 91 | + | ---------- | ---------------------------------------- | --------------------------------------- | |
| 92 | + | `feat` | New feature | `feat: add homepage hero section` | |
| 93 | + | `fix` | Bug fix | `fix: correct navbar alignment` | |
| 94 | + | `docs` | Documentation only | `docs: update README instructions` | |
| 95 | + | `style` | Code style, formatting (no logic change) | `style: reformat button spacing` | |
| 96 | + | `refactor` | Code refactor (no behavior change) | `refactor: clean up auth hook` | |
| 97 | + | `perf` | Performance improvement | `perf: reduce image load time` | |
| 98 | + | `test` | Add or update tests | `test: add unit tests for footer` | |
| 99 | + | `chore` | Tooling, config, or meta updates | `chore: update eslint config` | |
| 100 | + | `ci` | CI/CD workflow changes | `ci: fix node version in GitHub action` | |
| 101 | + | `build` | Changes to build tools or dependencies | `build: update vite build settings` | |
| 102 | + | `revert` | Reverts a previous commit | `revert: remove broken slider` | |
| 103 | + |
| 104 | + #### 🧠 Extras |
| 105 | + |
| 106 | + | Syntax | Usage | Example | |
| 107 | + | ------------------ | ------------------------------------ | ---------------------------------- | |
| 108 | + | `feat!:` | Breaking change | `feat!: drop support for IE11` | |
| 109 | + | `fix(auth):` | Scoped change | `fix(nav): fix mobile menu toggle` | |
| 110 | + | `BREAKING CHANGE:` | Add in body for API-breaking commits | See below | |
| 111 | + |
| 112 | +<details> |
| 113 | +<summary>🔻 Example with breaking change</summary> |
| 114 | + |
| 115 | +```bash |
| 116 | +feat!: rewrite routing system |
| 117 | + |
| 118 | +BREAKING CHANGE: All previous routes are now under `/app/*`. |
| 119 | +``` |
| 120 | + |
| 121 | +</details> |
| 122 | + |
| 123 | +--- |
| 124 | + |
| 125 | +## 📦 Pull Request Guidelines |
| 126 | + |
| 127 | +1. Keep PRs focused and atomic. |
| 128 | +2. Include screenshots or demos for UI changes. |
| 129 | +3. Reference any related issue numbers. |
| 130 | +4. Ensure all checks pass (formatting, linting, build). |
| 131 | +5. Be respectful in code reviews — we're here to learn. |
| 132 | + |
| 133 | +--- |
| 134 | + |
| 135 | +## 🤝 Code of Conduct |
| 136 | + |
| 137 | +We follow the [Contributor Covenant](https://www.contributor-covenant.org/). |
| 138 | +By participating, you agree to uphold a safe, inclusive, and respectful environment. |
| 139 | + |
| 140 | +> TL;DR: Be kind, constructive, and professional. |
| 141 | +
|
| 142 | +--- |
| 143 | + |
| 144 | +## 💬 Need Help? |
| 145 | + |
| 146 | +- Open an [issue](https://github.com/OpencodeNIT-R/project-talos/issues) |
| 147 | +- Tag a maintainer in discussions |
| 148 | +- Reach out to the [OpenCode](https://github.com/OpencodeNIT-R) team |
| 149 | + |
| 150 | +We’re glad to have you on board 🙌 |
| 151 | + |
| 152 | +--- |
| 153 | + |
| 154 | +_Thanks for being part of the OpenCode community!_ |
0 commit comments