Skip to content
Draft
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
97 changes: 97 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Bug Report
description: Report a bug in the course materials or code examples
title: "[Bug]: "
labels: ["bug", "needs-triage"]
assignees:
- timothywarner

body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report a bug! Please fill out the form below to help us understand and fix the issue.

- type: dropdown
id: component
attributes:
label: Component
description: Which part of the course is affected?
options:
- Python code examples (src/)
- Chat application (chat_app/)
- Exercises (exercises/)
- MCP demos (mcp-demos/)
- Documentation (README, guides)
- Infrastructure scripts (infra/)
- Other
validations:
required: true

- type: textarea
id: what-happened
attributes:
label: What happened?
description: Describe the bug you encountered
placeholder: |
A clear description of what the bug is.

Example: "When running the chat app demo, I get an authentication error..."
validations:
required: true

- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: What should have happened instead?
placeholder: "The demo should authenticate successfully and show the chat interface"
validations:
required: true

- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to reproduce
description: How can we reproduce this issue?
placeholder: |
1. Go to '...'
2. Run command '...'
3. See error
validations:
required: true

- type: textarea
id: environment
attributes:
label: Environment
description: Please provide details about your environment
placeholder: |
- OS: [e.g. Windows 11, macOS 14, Ubuntu 22.04]
- Python version: [e.g. 3.11.5]
- Node.js version: [e.g. 18.17.0]
- IDE: [e.g. VS Code, PyCharm]
- Browser: [e.g. Chrome 118, Firefox 119]
validations:
required: true

- type: textarea
id: logs
attributes:
label: Error logs or screenshots
description: |
Please paste any error messages or attach screenshots.
Tip: You can attach images by clicking this area to highlight it and then dragging files in.
placeholder: "Paste error logs here or describe what you see"

- type: checkboxes
id: checklist
attributes:
label: Pre-submission checklist
description: Please confirm you have done the following
options:
- label: I have searched existing issues to avoid duplicates
required: true
- label: I have provided all requested information
required: true
- label: I have removed any sensitive information (API keys, passwords)
required: true
124 changes: 124 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Feature Request
description: Suggest a new feature or improvement for the course
title: "[Feature]: "
labels: ["enhancement", "needs-review"]
assignees:
- timothywarner

body:
- type: markdown
attributes:
value: |
Thanks for suggesting a new feature! Your ideas help make this course better for everyone.

- type: dropdown
id: category
attributes:
label: Category
description: What type of feature is this?
options:
- New exercise or example
- Documentation improvement
- Code enhancement
- Tool/automation improvement
- New course module
- Infrastructure improvement
- Other
validations:
required: true

- type: textarea
id: problem
attributes:
label: Problem or need
description: What problem does this feature solve? What need does it address?
placeholder: |
Describe the problem or learning need this feature would address.

Example: "Students struggle with understanding async/await patterns in the OpenAI examples..."
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed solution
description: Describe your proposed solution or feature
placeholder: |
Describe what you'd like to see implemented.

Example: "Add a dedicated exercise that walks through async/await step by step..."
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternative solutions
description: Are there alternative approaches you've considered?
placeholder: "Describe any alternative solutions or workarounds you've considered"

- type: dropdown
id: priority
attributes:
label: Priority
description: How important is this feature to you?
options:
- Low - Nice to have
- Medium - Would be helpful
- High - Important for learning goals
- Critical - Blocks learning progress
validations:
required: true

- type: dropdown
id: audience
attributes:
label: Target audience
description: Who would benefit from this feature?
options:
- Beginners (new to AI/ML)
- Intermediate (some programming experience)
- Advanced (experienced developers)
- Instructors/educators
- All levels
validations:
required: true

- type: textarea
id: additional-context
attributes:
label: Additional context
description: |
Add any other context, screenshots, or examples about the feature request.
You can also reference related issues or external resources.
placeholder: |
Any additional information that might be helpful:
- Links to relevant documentation
- Screenshots or mockups
- Related issues or discussions
- External examples or inspiration

- type: checkboxes
id: contribution
attributes:
label: Contribution
description: Would you be interested in helping implement this feature?
options:
- label: I'd be willing to contribute to this feature
- label: I can help with documentation
- label: I can help with testing
- label: I can provide examples or use cases

- type: checkboxes
id: checklist
attributes:
label: Pre-submission checklist
description: Please confirm you have done the following
options:
- label: I have searched existing issues and discussions
required: true
- label: This feature aligns with the course's educational goals
required: true
- label: I have provided sufficient detail for evaluation
required: true
116 changes: 116 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Pull Request

## 📋 Description

Please provide a clear and concise description of your changes.

**Type of change:**
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📚 Documentation update
- [ ] 🔧 Infrastructure/tooling change
- [ ] 🧹 Code cleanup/refactoring

**Related Issue(s):**
Fixes #(issue number)
Closes #(issue number)
Related to #(issue number)

## 🎯 Learning Objectives

*For educational content changes:*
- What learning objectives does this change support?
- How does this improve the student experience?
- What skill level is this targeting?

## 🧪 Testing

**Testing performed:**
- [ ] Ran `pytest -q` (for Python changes)
- [ ] Tested `npm test` (for Node.js changes)
- [ ] Manual testing completed
- [ ] All demo code examples work as expected
- [ ] Documentation examples are accurate

**Test coverage:**
- [ ] Added new tests for new functionality
- [ ] Updated existing tests as needed
- [ ] All tests pass locally

**Manual validation steps:**
1. Step 1
2. Step 2
3. Step 3

## 📸 Screenshots

*For UI changes or new examples:*
<!-- Please include before/after screenshots or demo outputs -->

## 🔧 Configuration Changes

**New environment variables or configuration:**
- [ ] No new configuration required
- [ ] New environment variables (documented in PR)
- [ ] Updated requirements.txt or package.json
- [ ] Configuration files modified

**List any new secrets or configuration needed:**
- Environment variable: `NEW_API_KEY` (description of what it's for)
- Configuration file: `config.yaml` (what changed)

## 📚 Documentation

- [ ] README.md updated (if applicable)
- [ ] CONTRIBUTING.md updated (if applicable)
- [ ] Code comments added/updated
- [ ] New examples documented
- [ ] Installation instructions updated

## 🛡️ Security

- [ ] No sensitive data (API keys, passwords) committed
- [ ] Follows security guidelines in SECURITY.md
- [ ] New security considerations documented
- [ ] Vulnerable examples properly documented for teaching purposes

## ✅ Pre-submission Checklist

**Code Quality:**
- [ ] Code follows the project's style guidelines
- [ ] Self-review of the code completed
- [ ] Code is well-commented, particularly in hard-to-understand areas
- [ ] No console.log or debug statements left in production code

**Educational Quality:**
- [ ] Changes support learning objectives
- [ ] Examples are clear and well-documented
- [ ] Error handling is appropriate for educational context
- [ ] Code examples work as intended

**Repository Standards:**
- [ ] Commit messages follow the imperative format
- [ ] Branch name follows naming convention
- [ ] No merge conflicts
- [ ] PR title is clear and descriptive

## 📝 Additional Notes

<!-- Add any additional context, concerns, or discussion points -->

## 🎓 For Course Instructors

**Teaching considerations:**
- How should this be presented to students?
- Are there any prerequisites students should know?
- What common mistakes should be highlighted?
- Any specific callouts needed during instruction?

---

**Reviewer Guidelines:**
- Focus on educational value and clarity
- Verify all code examples work as intended
- Check that security best practices are followed
- Ensure documentation is beginner-friendly
Loading