Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 14 additions & 22 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,23 +38,20 @@ As civic technologists, we have additional responsibilities:
### Community-Centered Development

* **Listen first** - Understand community needs before proposing solutions

* **Include affected voices** - Center the people your project aims to serve
* **Build with, not for** - Collaborate with community members as partners
* **Question assumptions** - Regularly validate your understanding with real users

### Ethical Technology Practices

* **Privacy by design** - Minimize data collection and protect user privacy

* **Accessibility first** - Ensure your solutions work for people with diverse abilities
* **Open by default** - Use open source tools and share your learnings
* **Security consciousness** - Protect user data and system integrity

### Inclusive Participation

* **Welcome newcomers** - Help people get started regardless of technical experience

* **Share knowledge** - Teach and mentor others in the community
* **Amplify diverse voices** - Ensure all community members can contribute
* **Bridge divides** - Connect technical and non-technical community members
Expand Down Expand Up @@ -82,7 +79,7 @@ This includes:

### How to Report

If you experience or witness unacceptable behavior, or have any other concerns, please report it by contacting the community leaders at [contact email]. All reports will be handled with discretion.
If you experience or witness unacceptable behavior, or have any other concerns, please report it by contacting the community leaders at [civictechwr@gmail.com](mailto:civictechwr@gmail.com). You can also mention `@CivicTechWR/organizers` in a GitHub issue or direct message the organizers in Slack. All reports will be handled with discretion.

For urgent safety concerns, please contact local authorities.

Expand Down Expand Up @@ -156,35 +153,30 @@ For broader community concerns:

### Technical Support

* **Accessibility guidance** - [Link to accessibility resources]

* **Privacy compliance** - [Link to privacy guidelines]
* **Security best practices** - [Link to security resources]
* **Accessibility guidance** - [W3C Web Accessibility Initiative](https://www.w3.org/WAI/standards-guidelines/)
* **Privacy compliance** - [Office of the Privacy Commissioner of Canada](https://www.priv.gc.ca/en/)
* **Security best practices** - [OWASP Top Ten](https://owasp.org/www-project-top-ten/)

### Community Support

* **Conflict resolution** - [Link to mediation resources]

* **Mental health** - [Link to mental health resources]
* **Professional development** - [Link to career and skill development]
* **Conflict resolution** - [Community Justice Initiatives Waterloo Region](https://cjiwr.com/)
* **Mental health** - [Canadian Mental Health Association Waterloo Wellington](https://cmhaww.ca/)
* **Professional development** - [Communitech resources](https://www.communitech.ca/)

### Local Resources

* **Crisis support** - [Local crisis helpline numbers]

* **Legal assistance** - [Legal aid resources for tech/privacy issues]
* **Diversity and inclusion** - [Local D&I organizations]
* **Crisis support** - [Here 24/7 crisis services](https://here247.ca/)
* **Legal assistance** - [Waterloo Region Community Legal Services](https://www.wrcls.ca/)
* **Diversity and inclusion** - [Waterloo Region District School Board Equity Resources](https://www.wrdsb.ca/our-schools/equity/)

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at <https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
This Code of Conduct is adapted from the [Contributor Covenant 2.0](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html).

Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).

The civic tech specific guidelines were developed in collaboration with the CivicTechWR community and incorporate best practices from Code for America and other civic technology organizations.

[homepage]: https://www.contributor-covenant.org

## Updates and Feedback

This Code of Conduct is a living document that evolves with our community. We welcome feedback and suggestions for improvement. Please submit suggestions through:
Expand All @@ -193,9 +185,9 @@ This Code of Conduct is a living document that evolves with our community. We we
* Discussion at community meetings
* Direct feedback to community leaders

**Last Updated**: [Date]
**Next Review**: [Date - typically annual]
**Last Updated**: November 14, 2025
**Next Review**: May 14, 2026

---

Questions about this Code of Conduct? Contact us at [contact email] or discuss at our next community meeting.
Questions about this Code of Conduct? Contact us at [civictechwr@gmail.com](mailto:civictechwr@gmail.com) or discuss at our next community meeting. You can also mention `@CivicTechWR/organizers` on GitHub or reach out via Slack if you need help quickly.
254 changes: 46 additions & 208 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,231 +1,69 @@
# Contributing to [Project Name]
# Contributing to CivicTechWR Projects

Welcome to our CivicTechWR project! We're excited to have you contribute to strengthening Waterloo Region's civic fabric through technology.
We are excited to welcome contributors of every experience level who want to build civic technology for Waterloo Region. This guide covers how to plug into the community, find meaningful work, and collaborate effectively.

## Code of Conduct
## Community & Meetings

This project follows the [CivicTechWR Code of Conduct](CODE_OF_CONDUCT.md). By participating, you're expected to uphold this code. Please report unacceptable behavior to [contact].
- **Weekly meetup:** Wednesdays from 6:00–8:00 p.m. Eastern. Check the [CivicTechWR Meetup](https://www.meetup.com/civictechwr/) for the latest location, session topics, and hybrid details.
- **Slack workspace:** Join the conversation in [Slack](https://join.slack.com/t/civictechwr/shared_invite/zt-2ldijjy0i-gaGvPkuafPt9Zpn7jml70w). Introduce yourself in `#introductions` and connect with project teams in their channels.
- **Project board:** Browse active initiatives and open roles via the [CivicTechWR Projects board](https://github.com/orgs/CivicTechWR/projects/10/views/6?sliceBy%5Bvalue%5D=In+progress).

## How to Contribute
## Before You Start

### For New Contributors
1. **Review the Code of Conduct:** Participation requires following the [CivicTechWR Code of Conduct](CODE_OF_CONDUCT.md).
2. **Learn about the organization:** The [organization README](README.md) outlines how default files apply across CivicTechWR repositories.
3. **Find a good first task:** Explore open issues in the current repository, especially those labeled `good first issue`, `help wanted`, or `documentation`.
4. **Claim the work:** Comment on the issue to let others know you are investigating. Maintainers will confirm and offer context.

1. **Join our community meetings** (Wednesdays at [time/location])
2. **Read our project documentation** (especially [DVF_SCORECARD.md](./DVF_SCORECARD.md))
3. **Check our current issues** labeled `good first issue`
4. **Introduce yourself** in our communication channels
## Contribution Workflow

### Types of Contributions We Welcome
1. **Discuss the problem:** Align on scope, acceptance criteria, and any blockers in Slack or the issue thread.
2. **Create a branch:** Use a descriptive branch name such as `feature/add-bus-routes` or `fix/accessibility-audit`.
3. **Work iteratively:** Commit early and often. Keep changes focused so they are easy to review.
4. **Run quality checks:** Execute linting, tests, and accessibility checks that apply to the repository before pushing.
5. **Open a pull request:** Complete the prompts in the [pull request template](PULL_REQUEST_TEMPLATE.md), reference related issues, and request reviewers.

- 🐛 **Bug fixes** - Help us improve the user experience
- ✨ **New features** - Add functionality that serves our community
- 📚 **Documentation** - Make the project more accessible
- 🎨 **Design improvements** - Enhance usability and accessibility
- 📊 **User research** - Help us understand community needs
- 🧪 **Testing** - Ensure our solutions work for everyone
- 🌐 **Translation** - Make our project accessible to more communities

## Getting Started

### 1. Set Up Your Development Environment

```bash
# Clone the repository
git clone [your-repo-url]
cd [project-name]

# Run the setup script
./scripts/setup.sh

# Start development server
[project-specific commands]
```

### 2. Find Something to Work On

- Check our [issues page](../../issues) for current needs
- Look for issues labeled:
- `good first issue` - Perfect for newcomers
- `help wanted` - We need community support
- `bug` - Something that needs fixing
- `enhancement` - New features or improvements

### 3. Before You Start Coding

- Comment on the issue to let others know you're working on it
- Ask questions if anything is unclear
- Check if the issue aligns with our [current DVF priorities](./DVF_SCORECARD.md)

## Development Workflow

### 1. Create a Branch

```bash
git checkout -b feature/your-feature-name
# or
git checkout -b bugfix/issue-description
```

### 2. Make Your Changes

- Write clear, commented code
- Follow our style guidelines (see below)
- Add tests for new functionality
- Update documentation as needed

### 3. Test Your Changes

```bash
# Run the test suite
[test command]

# Test manually with different user scenarios
# Verify accessibility standards are met
```

### 4. Commit Your Changes

```bash
git add .
git commit -m "Brief description of changes

Longer explanation if needed, including:
- What problem this solves
- How you tested it
- Any breaking changes"
```

### 5. Submit a Pull Request

- Push your branch to GitHub
- Create a pull request using our [PR template](../.github/PULL_REQUEST_TEMPLATE.md)
- Link to any related issues
- Request review from team members

## Code Standards
## Development Guidelines

### General Principles

- **Accessibility first** - Follow WCAG 2.1 guidelines
- **Privacy by design** - No unnecessary data collection
- **Community-focused** - Consider how this serves Waterloo Region
- **Maintainable** - Write code that volunteers can understand and maintain

### Style Guidelines

#### JavaScript/TypeScript

- Use meaningful variable names
- Add JSDoc comments for public functions
- Follow [Prettier](https://prettier.io/) formatting
- Use ESLint for code quality

#### Python

- Follow [PEP 8](https://pep8.org/) style guidelines
- Use type hints where helpful
- Add docstrings for functions and classes

#### CSS

- Use semantic class names
- Follow BEM methodology for complex components
- Ensure responsive design
- Test with screen readers

#### Documentation

- Write in clear, accessible language
- Include examples where helpful
- Keep README and docs up to date

## Testing Guidelines

### What to Test

- **Functionality** - Does it work as expected?
- **Accessibility** - Can everyone use it?
- **Performance** - Does it load quickly?
- **Security** - Are there any vulnerabilities?
- **Mobile** - Does it work on different devices?

### Testing Tools

- [List project-specific testing tools]
- Accessibility: [WAVE](https://wave.webaim.org/), [axe](https://www.deque.com/axe/)
- Performance: [Lighthouse](https://developers.google.com/web/tools/lighthouse)

## Civic Tech Specific Guidelines

### Data Handling

- **Minimize data collection** - Only collect what's necessary
- **Protect privacy** - Never expose personal information
- **Use open data** - Prefer publicly available datasets
- **Document sources** - Always cite data sources

### Community Engagement

- **Test with real users** - Not just team members
- **Consider diverse needs** - Different abilities, languages, tech comfort
- **Think about sustainability** - Can the community maintain this?

### Transparency

- **Open by default** - Make code and decisions public
- **Document decisions** - Explain why choices were made
- **Share learnings** - Help other civic tech projects

## Communication

### Where to Get Help

- **Weekly meetings**: Wednesdays at [time/location]
- **Slack/Discord**: [link to communication channel]
- **Issues**: For technical questions, tag @[maintainer]
- **Email**: [contact email] for sensitive matters

### Response Time Expectations

This is a volunteer-driven project. Please be patient with response times:

- **Pull requests**: We aim to review within 1 week
- **Issues**: We'll respond within 2 weeks
- **Community questions**: Usually answered same week

## Recognition

We value all contributions! Contributors will be:
- **Accessibility first:** Align with [WCAG 2.1](https://www.w3.org/TR/WCAG21/) standards wherever possible.
- **Privacy by design:** Collect and retain only the data a feature requires.
- **Community impact:** Prioritize features that help Waterloo Region residents.
- **Maintainability:** Write code and documentation future volunteers can understand.

- Listed in our project credits
- Invited to Demo Day presentations
- Connected with CTWR's broader network
- Given reference letters for civic tech work (upon request)
### Language- and Tool-Specific Tips

## Project Lifecycle
- **JavaScript/TypeScript:** Follow the repository’s lint configuration, format with Prettier when available, and add JSDoc or TSDoc comments for public APIs.
- **Python:** Adhere to [PEP 8](https://pep8.org/), add docstrings, and prefer type hints for new modules.
- **CSS and design:** Use semantic markup, responsive layouts, and contrast-checked color palettes. Test components with assistive technologies whenever feasible.
- **Documentation:** Default to plain language, keep examples current, and update onboarding docs when workflows change.

### Season Timeline
## Testing Expectations

- **Weeks 1-3**: Project setup and team formation
- **Weeks 4-6**: Core development and user research
- **Weeks 7-9**: Feature development and testing
- **Weeks 10-11**: Refinement and demo preparation
- **Week 12**: Demo Day presentation
- **Automated tests:** Run the commands listed in the repository README (for example, `npm test`, `pytest`, or language-specific linters).
- **Accessibility checks:** Use tools such as [WAVE](https://wave.webaim.org/), [axe DevTools](https://www.deque.com/axe/), or browser accessibility inspectors.
- **Manual validation:** Confirm key user journeys succeed on desktop and mobile devices. Document any known limitations in the pull request.

### After the Season
## Communication Channels

- The project may continue with community maintainers
- Code will remain open source for future use
- Documentation will be preserved for learning
- **Slack:** Coordinate in [Slack](https://join.slack.com/t/civictechwr/shared_invite/zt-2ldijjy0i-gaGvPkuafPt9Zpn7jml70w); project channels are the fastest way to get help.
- **GitHub issues:** Use issues for tracking work, design discussions, and decisions so knowledge stays discoverable.
- **Email:** Sensitive or non-public matters can be sent to [civictechwr@gmail.com](mailto:civictechwr@gmail.com).
- **GitHub organizers team:** Mention `@CivicTechWR/organizers` when a decision or review needs organizer attention.

## Questions?
This is a volunteer-driven community. Maintainers aim to respond to new issues within a week and review pull requests within two weeks, but availability varies. Flag time-sensitive work early so the team can coordinate support.

Don't hesitate to ask! We're here to support your contribution to civic tech in Waterloo Region.
## Recognition & Support

**New to open source?** Check out [First Timers Only](https://www.firsttimersonly.com/) for general guidance.
- Contributors are highlighted during demo nights and in community updates.
- Organizers can provide reference letters that describe your CivicTechWR impact.
- We encourage pairing and co-working sessions—ask in Slack if you would like a buddy to collaborate with.

**New to civic tech?** Read about [Code for America's principles](https://www.codeforamerica.org/values) that guide our work.
## Questions or Ideas?

---
- Post in the project channel on [Slack](https://join.slack.com/t/civictechwr/shared_invite/zt-2ldijjy0i-gaGvPkuafPt9Zpn7jml70w).
- Open a GitHub discussion or issue to capture proposals and feedback.
- Connect with organizers at the next Wednesday meetup for real-time support.

Thank you for helping build technology that serves our community! 🚀
Thank you for contributing your skills to CivicTechWR! Together we build technology that helps Waterloo Region thrive.
2 changes: 1 addition & 1 deletion ISSUE_TEMPLATE/accessibility_issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ body:
- Community members affected: [estimated number/percentage]
- Essential services impacted: [which civic functions]
- Equity considerations: [who is excluded by this barrier]
- DVF score impact: [effect on civic exciting score]
- Community values affected: [accessibility, privacy, community impact, etc.]
- type: checkboxes
id: priority-factors
attributes:
Expand Down
2 changes: 1 addition & 1 deletion ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ body:
placeholder: |
- Number of users potentially affected: [estimate]
- Community services impacted: [list services]
- DVF score impact: [which areas affected]
- Community values affected: [accessibility, privacy, community impact, etc.]
- Urgency for community: [timeline needs]
- type: checkboxes
id: testing-help
Expand Down
Loading
Loading