Contributing
Thank you for your interest in contributing to the UiASub website! This guide will help you get started.
How to Contribute
Types of Contributions
We welcome:
- Bug fixes
- New features
- Documentation improvements
- Design enhancements
- Accessibility improvements
- Translation updates
- Code refactoring
Getting Started
1. Fork the Repository
- Visit github.com/UiASub/uiasub.github.io
- Click the "Fork" button in the top-right corner
- Clone your fork:
2. Set Up Development Environment
# Add upstream remote
git remote add upstream https://github.com/UiASub/uiasub.github.io.git
# Create a feature branch
git checkout -b feature/your-feature-name
# Start local server
python3 -m http.server
3. Make Your Changes
- Follow the Code Standards
- Test your changes thoroughly
- Ensure both Norwegian and English versions work
- Check responsive design
4. Commit Your Changes
Commit message guidelines:
- Use present tense ("Add feature" not "Added feature")
- Keep first line under 50 characters
- Add detailed description after blank line if needed
5. Push and Create Pull Request
Then:
- Go to your fork on GitHub
- Click "New Pull Request"
- Fill out the PR template
- Submit for review
Pull Request Guidelines
PR Title Format
Use conventional commit format:
feat: Add new featurefix: Resolve bug in navigationdocs: Update READMEstyle: Improve button stylingrefactor: Restructure member loadingtest: Add validation testschore: Update dependencies
PR Description
Include:
- What: What changes were made
- Why: Why these changes were needed
- How: How the changes work
- Testing: How you tested the changes
- Screenshots: For visual changes
Example:
## What
Added dark mode toggle to header
## Why
Users requested dark mode for better viewing at night
## How
- Created CSS variables for dark theme
- Added toggle button to header
- Persisted preference in localStorage
## Testing
- Tested on Chrome, Firefox, Safari
- Tested on mobile and desktop
- Verified persistence across page loads
## Screenshots
[Include before/after screenshots]
PR Checklist
Before submitting:
- [ ] Code follows project conventions
- [ ] Changes work on both Norwegian and English versions
- [ ] Responsive design tested (mobile, tablet, desktop)
- [ ] No console errors
- [ ] Commit messages are clear
- [ ] PR description is complete
Code Review Process
What to Expect
- Initial Review: Within 1-3 days
- Feedback: Reviewers may request changes
- Iteration: Make requested changes and push updates
- Approval: Once approved, maintainers will merge
- Deployment: Changes go live automatically
Responding to Feedback
- Be open to suggestions
- Ask questions if feedback is unclear
- Make requested changes promptly
- Thank reviewers for their time
Contribution Areas
Good First Issues
Look for issues labeled good-first-issue:
- Documentation typos
- Simple bug fixes
- Adding translations
- Minor styling improvements
Priority Areas
Current priorities:
- Accessibility: WCAG 2.1 AA compliance
- Performance: Image optimization, code splitting
- Internationalization: Supporting more languages
- Testing: Adding automated tests
Style Guide
HTML
<!-- Good: Semantic, accessible -->
<section class="team-section" aria-label="Our team members">
<h2>Our Team</h2>
<img src="member.jpg" alt="Team member portrait">
</section>
<!-- Avoid: Non-semantic, no accessibility -->
<div class="team-section">
<h3>Our Team</h3>
<img src="member.jpg">
</div>
CSS
/* Good: Variables, clear names */
.member-card {
padding: var(--spacing-lg);
background: var(--color-surface);
border-radius: var(--radius-lg);
}
/* Avoid: Magic numbers, unclear names */
.card {
padding: 24px;
background: #f8f9fa;
border-radius: 16px;
}
JavaScript
// Good: Modern, error handling
const fetchData = async () => {
try {
const response = await fetch('/data/members.json')
return await response.json()
} catch (error) {
console.error('Failed to fetch:', error)
return []
}
}
// Avoid: Callback hell, no error handling
function fetchData() {
var xhr = new XMLHttpRequest()
xhr.onload = function() {
var data = JSON.parse(xhr.responseText)
// ...
}
xhr.open('GET', '/data/members.json')
xhr.send()
}
Reporting Issues
Bug Reports
Include:
- Description: What's wrong
- Steps to reproduce: How to trigger the bug
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Screenshots: If visual
- Environment: Browser, OS, device
Template:
**Bug Description**
Navigation menu doesn't close on mobile
**Steps to Reproduce**
1. Open site on mobile device
2. Tap hamburger menu
3. Tap a link
4. Menu stays open
**Expected**
Menu should close after link click
**Actual**
Menu remains open
**Environment**
- Browser: Safari on iOS 17
- Device: iPhone 14
Feature Requests
Include:
- Feature description: What you'd like added
- Use case: Why it's needed
- Alternatives: Other solutions you've considered
- Additional context: Mockups, examples
Community Guidelines
Code of Conduct
- Be respectful and inclusive
- Welcome newcomers
- Provide constructive feedback
- Focus on the issue, not the person
- Follow Norwegian and English language guidelines
Communication
- GitHub Issues: Bug reports, feature requests
- Pull Requests: Code contributions
- Email: uia.submerged@gmail.com for private matters
Recognition
Contributors will be:
- Acknowledged in release notes
- Listed in GitHub contributors
- Thanked publicly on social media (with permission)
License
By contributing, you agree that your contributions will be licensed under the same license as the project (typically MIT or similar).
Questions?
- Check the Wiki documentation
- Search existing GitHub issues
- Open a new issue with your question
- Email the team: uia.submerged@gmail.com
Thank You
Every contribution, no matter how small, helps improve the UiASub website. We appreciate your time and effort!