|
| 1 | +# Contributing to Will Craft Software |
| 2 | + |
| 3 | +First off, thank you for considering contributing to Will Craft Software! It's people like you that make this community amazing. |
| 4 | + |
| 5 | +## 📌 Impostor Syndrome Disclaimer |
| 6 | + |
| 7 | +Before we get started, we want to address something important: |
| 8 | + |
| 9 | +**We want your help. Yes, you. The person reading this right now.** |
| 10 | + |
| 11 | +There's no such thing as a contribution that's too small: |
| 12 | + |
| 13 | +- Found a typo? Send a PR! |
| 14 | +- Noticed a broken link? Let us know! |
| 15 | +- Have an idea for an event? Open an issue! |
| 16 | +- Want to improve documentation? Go for it! |
| 17 | + |
| 18 | +Everyone was a beginner at some point. If you're unsure about anything, just ask – we're here to help, not to judge. The worst that can happen is we'll politely guide you to make your contribution even better. |
| 19 | + |
| 20 | +## 🤝 Code of Conduct |
| 21 | + |
| 22 | +### Our Pledge |
| 23 | + |
| 24 | +We pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. |
| 25 | + |
| 26 | +### Our Standards |
| 27 | + |
| 28 | +Examples of behavior that contributes to a positive environment: |
| 29 | + |
| 30 | +- Using welcoming and inclusive language |
| 31 | +- Being respectful of differing viewpoints and experiences |
| 32 | +- Gracefully accepting constructive criticism |
| 33 | +- Focusing on what is best for the community |
| 34 | +- Showing empathy towards other community members |
| 35 | + |
| 36 | +Examples of unacceptable behavior: |
| 37 | + |
| 38 | +- The use of sexualized language or imagery |
| 39 | +- Trolling, insulting/derogatory comments, and personal attacks |
| 40 | +- Public or private harassment |
| 41 | +- Publishing others' private information without permission |
| 42 | +- Other conduct which could reasonably be considered inappropriate |
| 43 | + |
| 44 | +## 🚀 Getting Started |
| 45 | + |
| 46 | +### Prerequisites |
| 47 | + |
| 48 | +- [Deno](https://deno.land/) installed on your machine |
| 49 | +- Git for version control |
| 50 | +- A text editor (we recommend VS Code with Deno extension) |
| 51 | +- Basic knowledge of HTML, CSS, and JavaScript/TypeScript |
| 52 | + |
| 53 | +### Setting Up Your Development Environment |
| 54 | + |
| 55 | +1. **Fork the repository** |
| 56 | + |
| 57 | + ```bash |
| 58 | + # Click the 'Fork' button on GitHub |
| 59 | + ``` |
| 60 | + |
| 61 | +2. **Clone your fork** |
| 62 | + |
| 63 | + ```bash |
| 64 | + git clone https://github.com/YOUR-USERNAME/wewillcraft.github.io.git |
| 65 | + cd wewillcraft.github.io |
| 66 | + ``` |
| 67 | + |
| 68 | +3. **Add upstream remote** |
| 69 | + |
| 70 | + ```bash |
| 71 | + git remote add upstream https://github.com/wewillcraft/wewillcraft.github.io.git |
| 72 | + ``` |
| 73 | + |
| 74 | +4. **Install dependencies and run locally** |
| 75 | + ```bash |
| 76 | + deno task serve |
| 77 | + ``` |
| 78 | + Your site should now be running at `http://localhost:3000` |
| 79 | + |
| 80 | +## 📝 How to Contribute |
| 81 | + |
| 82 | +### Reporting Bugs |
| 83 | + |
| 84 | +Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include: |
| 85 | + |
| 86 | +- A clear and descriptive title |
| 87 | +- Steps to reproduce the behavior |
| 88 | +- Expected behavior |
| 89 | +- Screenshots (if applicable) |
| 90 | +- Your environment (OS, browser, etc.) |
| 91 | + |
| 92 | +### Suggesting Enhancements |
| 93 | + |
| 94 | +Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include: |
| 95 | + |
| 96 | +- A clear and descriptive title |
| 97 | +- Step-by-step description of the suggested enhancement |
| 98 | +- Explanation of why this enhancement would be useful |
| 99 | +- Possible implementation approach (if you have ideas) |
| 100 | + |
| 101 | +### Adding Events |
| 102 | + |
| 103 | +To add a new event to our calendar: |
| 104 | + |
| 105 | +1. Edit `/events/index.yml` |
| 106 | +2. Add your event following this format: |
| 107 | + |
| 108 | + ```yaml |
| 109 | + - name: "Event Name" |
| 110 | + start_date: 2025-03-15 # YYYY-MM-DD format |
| 111 | + end_date: 2025-03-16 # Optional for multi-day events |
| 112 | + city: "Manila City" |
| 113 | + website: "https://event-website.com" |
| 114 | + by: "org-id" # Must match an organization ID |
| 115 | + ``` |
| 116 | +
|
| 117 | +3. If adding a new organization, update the organizations list in the same file |
| 118 | +
|
| 119 | +### Writing Blog Posts |
| 120 | +
|
| 121 | +1. Create a new markdown file in `/posts/` directory |
| 122 | +2. Name it with the format: `YYYY-MM-DD-post-title.md` |
| 123 | +3. Add frontmatter: |
| 124 | + |
| 125 | + ```markdown |
| 126 | + --- |
| 127 | + title: Your Post Title |
| 128 | + date: 2025-01-15 |
| 129 | + tags: |
| 130 | + - community |
| 131 | + - technology |
| 132 | + excerpt: A brief description of your post |
| 133 | + --- |
| 134 | +
|
| 135 | + Your content here... |
| 136 | + ``` |
| 137 | + |
| 138 | +### Working on the 100-Day Journey Content |
| 139 | + |
| 140 | +The `/journey/` directory contains our educational content. Each week has: |
| 141 | + |
| 142 | +- A main content file |
| 143 | +- A CLAUDE.md file with guidelines |
| 144 | + |
| 145 | +When contributing to journey content: |
| 146 | + |
| 147 | +1. Follow the style guide in the respective CLAUDE.md file |
| 148 | +2. Keep content beginner-friendly |
| 149 | +3. Include practical examples |
| 150 | +4. Aim for 20-30 minute read time |
| 151 | + |
| 152 | +## 💻 Development Workflow |
| 153 | + |
| 154 | +### Branch Naming |
| 155 | + |
| 156 | +- `feat/` - New features (e.g., `feat/add-workshop-section`) |
| 157 | +- `fix/` - Bug fixes (e.g., `fix/mobile-navigation`) |
| 158 | +- `docs/` - Documentation changes (e.g., `docs/update-readme`) |
| 159 | +- `style/` - CSS/formatting changes (e.g., `style/improve-card-layout`) |
| 160 | +- `refactor/` - Code refactoring (e.g., `refactor/simplify-event-logic`) |
| 161 | +- `test/` - Adding tests (e.g., `test/add-event-validation`) |
| 162 | +- `chore/` - Maintenance tasks (e.g., `chore/update-dependencies`) |
| 163 | + |
| 164 | +### Commit Messages |
| 165 | + |
| 166 | +We use [Conventional Commits](https://www.conventionalcommits.org/) for clear commit history: |
| 167 | + |
| 168 | +``` |
| 169 | +<type>(<scope>): <subject> |
| 170 | +
|
| 171 | +<body> |
| 172 | +
|
| 173 | +<footer> |
| 174 | +``` |
| 175 | + |
| 176 | +**Types:** |
| 177 | + |
| 178 | +- `feat:` - New feature |
| 179 | +- `fix:` - Bug fix |
| 180 | +- `docs:` - Documentation only |
| 181 | +- `style:` - Formatting, missing semicolons, etc. |
| 182 | +- `refactor:` - Code change that neither fixes a bug nor adds a feature |
| 183 | +- `test:` - Adding missing tests |
| 184 | +- `chore:` - Maintain |
| 185 | + |
| 186 | +**Examples:** |
| 187 | + |
| 188 | +```bash |
| 189 | +feat(events): add filtering by organization |
| 190 | +fix(calendar): correct date formatting for multi-day events |
| 191 | +docs: update contribution guidelines |
| 192 | +style: format events page with prettier |
| 193 | +``` |
| 194 | + |
| 195 | +### Pull Request Process |
| 196 | + |
| 197 | +1. **Keep your fork updated** |
| 198 | + |
| 199 | + ```bash |
| 200 | + git fetch upstream |
| 201 | + git checkout main |
| 202 | + git merge upstream/main |
| 203 | + ``` |
| 204 | + |
| 205 | +2. **Create a feature branch** |
| 206 | + |
| 207 | + ```bash |
| 208 | + git checkout -b feat/your-feature-name |
| 209 | + ``` |
| 210 | + |
| 211 | +3. **Make your changes** |
| 212 | + |
| 213 | + - Write clear, readable code |
| 214 | + - Follow existing code style |
| 215 | + - Add comments where necessary |
| 216 | + - Update documentation if needed |
| 217 | + |
| 218 | +4. **Test your changes** |
| 219 | + |
| 220 | + ```bash |
| 221 | + deno task build # Build the site |
| 222 | + deno task serve # Test locally |
| 223 | + ``` |
| 224 | + |
| 225 | +5. **Format your code** |
| 226 | + |
| 227 | + ```bash |
| 228 | + dprint fmt |
| 229 | + ``` |
| 230 | + |
| 231 | +6. **Commit your changes** |
| 232 | + |
| 233 | + ```bash |
| 234 | + git add . |
| 235 | + git commit -m "feat: add amazing feature" |
| 236 | + ``` |
| 237 | + |
| 238 | +7. **Push to your fork** |
| 239 | + |
| 240 | + ```bash |
| 241 | + git push origin feat/your-feature-name |
| 242 | + ``` |
| 243 | + |
| 244 | +8. **Create a Pull Request** |
| 245 | + - Go to the original repository |
| 246 | + - Click "New Pull Request" |
| 247 | + - Select your fork and branch |
| 248 | + - Fill in the PR template |
| 249 | + - Link any related issues |
| 250 | + |
| 251 | +### PR Review Process |
| 252 | + |
| 253 | +- PRs require at least one review before merging |
| 254 | +- Address reviewer feedback constructively |
| 255 | +- Keep PRs focused - one feature/fix per PR |
| 256 | +- Update your PR rather than creating a new one |
| 257 | +- Be patient - reviewers are volunteers too! |
| 258 | + |
| 259 | +## 🎨 Style Guidelines |
| 260 | + |
| 261 | +### Code Style |
| 262 | + |
| 263 | +- Use 2 spaces for indentation |
| 264 | +- Use meaningful variable names |
| 265 | +- Keep functions small and focused |
| 266 | +- Add JSDoc comments for complex functions |
| 267 | +- Follow existing patterns in the codebase |
| 268 | + |
| 269 | +### CSS/Tailwind |
| 270 | + |
| 271 | +- Use Tailwind utility classes when possible |
| 272 | +- Keep custom CSS minimal |
| 273 | +- Follow mobile-first responsive design |
| 274 | +- Maintain consistent spacing and sizing |
| 275 | + |
| 276 | +### Content Style |
| 277 | + |
| 278 | +- Write in a friendly, inclusive tone |
| 279 | +- Use "we" and "you" to be conversational |
| 280 | +- Keep paragraphs short and scannable |
| 281 | +- Use headings to organize content |
| 282 | +- Include examples and practical applications |
| 283 | + |
| 284 | +## 📚 Resources |
| 285 | + |
| 286 | +### Learning Resources |
| 287 | + |
| 288 | +- [Deno Documentation](https://deno.land/manual) |
| 289 | +- [Lume Documentation](https://lume.land) |
| 290 | +- [Vento Template Engine](https://vento.js.org) |
| 291 | +- [Tailwind CSS](https://tailwindcss.com) |
| 292 | +- [Conventional Commits](https://www.conventionalcommits.org) |
| 293 | + |
| 294 | +### Getting Help |
| 295 | + |
| 296 | +- Open an issue for bugs or feature requests |
| 297 | +- Start a discussion for questions or ideas |
| 298 | +- Join our community events to meet contributors |
| 299 | +- Check existing issues and PRs for similar topics |
| 300 | + |
| 301 | +## 🎯 Areas We Need Help |
| 302 | + |
| 303 | +Currently looking for help with: |
| 304 | + |
| 305 | +- Adding more tech events to the calendar |
| 306 | +- Writing blog posts about community experiences |
| 307 | +- Improving mobile responsiveness |
| 308 | +- Adding more educational content to /journey/ |
| 309 | +- Translating content to Filipino |
| 310 | +- Creating graphics and illustrations |
| 311 | +- Improving accessibility (ARIA labels, keyboard navigation) |
| 312 | +- Writing tests |
| 313 | +- Documentation improvements |
| 314 | + |
| 315 | +## 🙏 Recognition |
| 316 | + |
| 317 | +Contributors will be: |
| 318 | + |
| 319 | +- Listed in our Contributors section |
| 320 | +- Mentioned in release notes |
| 321 | +- Invited to contributor-only events |
| 322 | +- Given credit in social media posts |
| 323 | + |
| 324 | +## 📮 Contact |
| 325 | + |
| 326 | +- GitHub Issues: For bugs and features |
| 327 | +- GitHub Discussions: For questions and ideas |
| 328 | +- Email: [Add contact email if available] |
| 329 | +- Social Media: [Add social links if available] |
| 330 | + |
| 331 | +## 📜 License |
| 332 | + |
| 333 | +By contributing, you agree that your contributions will be licensed under the same license as the project (check LICENSE file). |
| 334 | + |
| 335 | +--- |
| 336 | + |
| 337 | +**Remember:** The best way to learn is by doing. Don't be afraid to make mistakes – that's how we all learn and grow. We're excited to see what you'll contribute! |
| 338 | + |
| 339 | +Thank you for being part of Will Craft Software! 🚀 |
0 commit comments