Skip to content
Merged
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
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug Report
about: Report a bug or issue in the application
title: '[Bug] '
labels: bug
assignees: ''
---

## 🐛 Bug Description
<!-- A clear and concise description of what the bug is -->

## 📋 Steps to Reproduce
<!-- Provide detailed steps to reproduce the issue -->
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error

## 🎯 Expected Behavior
<!-- What did you expect to happen? -->

## 📸 Actual Behavior
<!-- What actually happened? Include error messages, screenshots, or logs -->

## 🌍 Environment
<!-- Please complete the following information -->
- OS: [e.g. Windows 10, macOS 12.0, Ubuntu 22.04]
- Browser [e.g. Chrome 120, Firefox 121] (if applicable)
- Version/Commit: [e.g. v1.0.0 or commit SHA]

## 📎 Additional Context
<!-- Add any other context about the problem here -->
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Feature Request
about: Suggest a new feature or enhancement
title: '[Feature] '
labels: feature
assignees: ''
---

## ✨ Feature Description
<!-- A clear and concise description of the feature you're requesting -->

## 🧩 Problem Statement
<!-- What problem does this feature solve? Why is it needed? -->

## 💡 Proposed Solution
<!-- Describe your proposed solution or implementation approach -->

## 🔄 Alternatives Considered
<!-- Have you considered any alternative solutions or features? -->

## 📋 Acceptance Criteria
<!-- What needs to be done for this feature to be considered complete? -->
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3

## 🔗 Related Issues / Links
<!-- Link to related issues, pull requests, or external resources -->

## 📎 Additional Context
<!-- Add any other context, mockups, or screenshots about the feature request -->
4 changes: 4 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,15 @@ Closes: #ISSUE_NUMBER
### 🧪 Testing
<!-- Describe how you tested your changes (or explain why testing is not applicable). -->

---

### 🎓 Learning Reflection
<!-- Answer briefly:
- What did you learn while working on this PR?
- What challenges did you face?
- What would you do differently next time? -->

---

### 📸 Screenshots / Logs (if applicable)
<!-- Add screenshots, logs, or output if relevant. -->
232 changes: 232 additions & 0 deletions .github/SETUP_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
# Repository Setup Summary

This document provides a summary of the repository setup completed for the SkillForge project.

## ✅ Completed Setup

### 1. GitHub Actions (CI Workflows)

#### Added Workflows
- **Python Linting** (`python-lint.yml`) - Uses Ruff to check Python code quality
- **Python Formatting** (`python-format.yml`) - Uses Black to enforce consistent code formatting
- **JavaScript/TypeScript Linting** (`javascript-lint.yml`) - Uses ESLint for JS/TS code quality

#### Existing Workflows (Preserved)
- **Console.log Checker** - Prevents console.log statements in production
- **Print Statement Checker** - Prevents print() statements in production

All workflows trigger on:
- Pull requests to `master` branch
- Direct pushes to `master` branch

### 2. Issue and PR Templates

#### Issue Templates (`.github/ISSUE_TEMPLATE/`)
- **Bug Report** (`bug_report.md`) - Structured template for reporting bugs
- **Feature Request** (`feature_request.md`) - Template for proposing new features

#### Pull Request Template
- **PR Template** (`.github/PULL_REQUEST_TEMPLATE.md`) - Comprehensive checklist for PRs

### 3. Documentation

#### Contribution Guidelines
- **CONTRIBUTING.md** - Comprehensive guide for students including:
- Development workflow
- Branch naming conventions
- Commit message format
- Code quality standards
- PR submission process
- Getting help resources

#### Enhanced README
- **README.md** - Updated with:
- Project overview
- Getting started guide
- Contribution quick start
- Project goals
- Team information

#### Repository Management Guides
- **Branch Protection Guide** (`.github/branch-protection.md`) - Step-by-step instructions for setting up branch protection rules
- **GitHub Projects Guide** (`.github/project-setup.md`) - Comprehensive guide for setting up and using GitHub Projects
- **Labels Guide** (`.github/labels-guide.md`) - Complete label taxonomy and usage instructions

### 4. Existing Configuration (Preserved)

- **.gitignore** - Comprehensive Python gitignore (already present)
- **CODEOWNERS** - Auto-assigns @karastoyanov and @rayapetkova as reviewers
- **Dependabot** - Automated dependency updates for backend (pip) and frontend (npm)
- **LICENSE** - MIT License (already present)

## 🔧 Next Steps for Repository Administrators

### Immediate Actions Required

1. **Set Up Branch Protection Rules**
- Follow instructions in `.github/branch-protection.md`
- Configure protection for `master` branch
- Require 1-2 approving reviews
- Require status checks to pass
- Prevent direct pushes

2. **Create GitHub Project Board**
- Follow instructions in `.github/project-setup.md`
- Create a board with columns: Backlog, To Do, In Progress, Review, Done
- Set up automation rules
- Add initial issues

3. **Create Repository Labels**
- Follow instructions in `.github/labels-guide.md`
- Use the provided script or create manually
- Apply labels to existing issues

4. **Enable Repository Features**
- Go to Settings → Features
- Enable: Issues ✅
- Enable: Projects ✅
- Enable: Discussions (optional)

### Recommended Actions

1. **Create Initial Issues**
- Use the issue templates to create starter tasks
- Label with `good first issue` for students
- Assign to initial milestones

2. **Set Up First Milestone**
- Create milestone for first sprint/phase
- Add target completion date
- Link relevant issues

3. **Team Onboarding**
- Share CONTRIBUTING.md with students
- Conduct walkthrough of workflow
- Demonstrate PR process
- Show how to use GitHub Projects

4. **CI Workflow Verification**
- Create a test PR to verify workflows run correctly
- Ensure status checks appear on PRs
- Test that failing checks block merging (after branch protection is enabled)

## 📊 Project Structure

```
skillforge/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── workflows/
│ │ ├── check-console.logs.yml
│ │ ├── check-python-prints.yml
│ │ ├── javascript-lint.yml
│ │ ├── python-format.yml
│ │ └── python-lint.yml
│ ├── branch-protection.md
│ ├── CODEOWNERS
│ ├── dependabot.yml
│ ├── labels-guide.md
│ ├── project-setup.md
│ └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
└── README.md
```

## 🎓 Educational Value

This setup provides students with experience in:

### Technical Skills
- Git branching and merging strategies
- Pull request workflow
- Code review process
- CI/CD basics
- Automated testing and linting

### Professional Practices
- Issue tracking and project management
- Documentation writing
- Collaborative development
- Code quality standards
- Communication in technical teams

### Soft Skills
- Time management (through sprints/milestones)
- Teamwork and collaboration
- Giving and receiving feedback
- Problem-solving
- Attention to detail

## 📚 Documentation Structure

All documentation is organized for easy navigation:

- **Root level** - User-facing docs (README, CONTRIBUTING)
- **`.github/`** - Repository management guides
- **Templates** - Structured forms for consistency

## 🔍 Quality Enforcement

The repository now enforces quality through:

1. **Automated Checks** (CI Workflows)
- Code linting
- Code formatting
- Debug statement prevention

2. **Manual Review** (When branch protection is enabled)
- Required approvals from code owners
- Conversation resolution
- Status check requirements

3. **Templates**
- Structured issue reporting
- Comprehensive PR checklists
- Consistent communication

## 🎯 Success Criteria

The repository setup is successful when:

- ✅ Students can easily find contribution guidelines
- ✅ Issue templates guide proper bug reporting and feature requests
- ✅ PR template ensures thorough change documentation
- ✅ CI workflows catch code quality issues automatically
- ✅ Branch protection prevents accidental mistakes
- ✅ GitHub Projects provides visibility into work progress
- ✅ Labels enable effective issue organization
- ✅ Code owners are automatically assigned to PRs

## 🔗 Quick Links

- [CONTRIBUTING.md](../CONTRIBUTING.md) - How to contribute
- [Branch Protection Guide](branch-protection.md) - Setting up branch rules
- [Project Setup Guide](project-setup.md) - Managing GitHub Projects
- [Labels Guide](labels-guide.md) - Using labels effectively

## 📞 Support

For questions or issues with the repository setup:
- Create an issue using the Bug Report template
- Tag @karastoyanov or @rayapetkova
- Check existing documentation first

## 🔄 Future Enhancements

Consider adding in the future:
- **Code coverage reports** - Track test coverage
- **Automated deployments** - Deploy on merge to main
- **Performance testing** - Automated performance checks
- **Security scanning** - Automated vulnerability detection
- **Stale issue management** - Auto-close or tag old issues
- **Release automation** - Automated changelog generation

---

**Setup Completed:** January 11, 2026
**Last Updated:** January 11, 2026
**Maintained by:** @karastoyanov, @rayapetkova
Loading