This is a 5-minute quick start to get you contributing!
python --versionYou need Python 3.7 or higher. If not installed, download from python.org
cd your-workspace-folder
# If you have the project already, just navigate to it
cd demopython main.py --help# Add an assignment
python main.py add-assignment "Physics Lab" --deadline "2025-12-15" --subject "Physics"
# List assignments (Note: won't work yet - this is a bug to fix!)
python main.py list
# Check statistics
python main.py stats
# Calculate GPA
python main.py gpa# Run the unit tests
python -m pytest tests/ -v
# OR using unittest
python -m unittest tests/test_utils.pyExpected output: 4 tests passed ✓
Open ISSUES.md and choose based on your comfort level:
- Issue #2: Fix documentation typo (just edit text!)
- Issue #4: Add a docstring (copy-paste example)
- Issue #1: Add error handling (try-except block)
- Issue #3: Add input validation
- Issue #5: Implement delete feature
- Issue #6: Write unit tests
git checkout -b fix-issue-2Edit the file mentioned in the issue
python main.py --help
python -m pytest tests/git add .
git commit -m "Fix: Update README placeholder (Issue #2)"
git push origin fix-issue-2| Task | Command |
|---|---|
| See all commands | python main.py --help |
| Add assignment | python main.py add-assignment "Title" --deadline "2025-12-01" |
| List assignments | python main.py list |
| Mark complete | python main.py complete "Title" |
| Check GPA | python main.py gpa |
| See statistics | python main.py stats |
| Run tests | python -m pytest tests/ -v |
These are intentional bugs for you to fix:
- ❌ Data doesn't persist (Issue #8)
- ❌ Invalid dates crash the program (Issue #1)
- ❌ No way to delete assignments (Issue #5)
- ❌ Missing documentation (Issues #2, #4)
- ❌ No colored output (Issue #7)
# This WILL crash (that's the bug!)
python main.py add-assignment "Test" --deadline "invalid-date"After you fix Issue #1, it should show an error message instead of crashing.
# Open Python interpreter
python
# Run this code
from student_manager import StudentManager
manager = StudentManager()
# This should work
manager.add_grade("Math", 95)
# These should fail gracefully (after you fix Issue #3)
manager.add_grade("Math", -5) # Negative grade
manager.add_grade("Math", 150) # Too high
manager.add_grade("Math", "A+") # Wrong type- Read
CONTRIBUTING.mdfor detailed steps - Check
ISSUES.mdfor issue descriptions - Ask your instructor/mentor
- Comment on the issue you're working on
✅ Start small - Issue #2 takes 30 seconds! ✅ Read the code first - Understand before changing ✅ Test your changes - Run the program and tests ✅ One issue at a time - Don't mix multiple fixes ✅ Ask questions - No question is too small!
- Real code - Actual Python project, not a toy example
- Clear issues - Each issue teaches specific skills
- Immediate feedback - Run code and see results instantly
- Progressive difficulty - Start easy, level up
- Practical skills - CLI tools, testing, documentation
| Task | Time |
|---|---|
| Setup environment | 2-5 min |
| Fix Issue #2 (typo) | 1 min |
| Fix Issue #4 (docstring) | 3 min |
| Fix Issue #1 (error handling) | 10 min |
| Fix Issue #3 (validation) | 15 min |
| Fix Issue #5 (delete feature) | 30 min |
| Fix Issue #6 (unit tests) | 45 min |
Once you're comfortable:
- Complete 2-3 more issues
- Try the advanced issues (#8-#10)
- Create your own feature!
- Find a real open source project on GitHub
- Apply the same skills you learned here
Remember: Every expert was once a beginner who didn't give up!
Happy coding! 🚀