421 lines
8.9 KiB
Markdown
421 lines
8.9 KiB
Markdown
# Extension Challenges
|
|
|
|
You've built the base project. Now make it yours by extending it with new features.
|
|
|
|
These challenges are ordered by difficulty. Start with the easier ones to build confidence, then tackle the harder ones when you want to dive deeper.
|
|
|
|
## Easy Challenges
|
|
|
|
### Challenge 1: [Extension Idea]
|
|
|
|
**What to build:**
|
|
[Specific feature to add]
|
|
|
|
**Why it's useful:**
|
|
[Real world scenario where this matters]
|
|
|
|
**What you'll learn:**
|
|
- [Skill/concept 1]
|
|
- [Skill/concept 2]
|
|
|
|
**Hints:**
|
|
- Look at `[filename]` - you'll need to modify [component]
|
|
- The key is [concept/technique]
|
|
- Don't forget to handle [edge case]
|
|
|
|
**Test it works:**
|
|
[How to verify the feature works correctly]
|
|
|
|
### Challenge 2: [Another Extension]
|
|
|
|
[Same format for each challenge]
|
|
|
|
### Challenge 3: [Another Extension]
|
|
|
|
[Continue pattern]
|
|
|
|
## Intermediate Challenges
|
|
|
|
### Challenge 4: [More Complex Feature]
|
|
|
|
**What to build:**
|
|
[Feature description]
|
|
|
|
**Real world application:**
|
|
[Where you'd actually use this in production]
|
|
|
|
**What you'll learn:**
|
|
- [New concept 1]
|
|
- [New concept 2]
|
|
- [Integration with existing code]
|
|
|
|
**Implementation approach:**
|
|
|
|
1. **Add [component]** to handle [responsibility]
|
|
- Files to create: `[filename]`
|
|
- Files to modify: `[filename]`
|
|
|
|
2. **Integrate with [existing system]**
|
|
- Hook into [entry point]
|
|
- Pass data through [flow]
|
|
|
|
3. **Test edge cases:**
|
|
- What if [scenario 1]?
|
|
- How do you handle [scenario 2]?
|
|
|
|
**Hints:**
|
|
- You'll need [technology/library]
|
|
- The tricky part is [specific challenge]
|
|
- Consider [design pattern] for [aspect]
|
|
|
|
**Extra credit:**
|
|
[Additional variation to make it more sophisticated]
|
|
|
|
### Challenge 5: [Another Intermediate Feature]
|
|
|
|
[Continue pattern]
|
|
|
|
## Advanced Challenges
|
|
|
|
### Challenge 6: [Complex Integration]
|
|
|
|
**What to build:**
|
|
[Significant new capability]
|
|
|
|
**Why this is hard:**
|
|
[What makes this challenging - multiple components, complex state, performance, etc]
|
|
|
|
**What you'll learn:**
|
|
- [Advanced concept 1]
|
|
- [Advanced concept 2]
|
|
- [System design skill]
|
|
|
|
**Architecture changes needed:**
|
|
|
|
```
|
|
[Diagram showing how the new feature fits in]
|
|
```
|
|
|
|
**Implementation steps:**
|
|
|
|
1. **Research phase**
|
|
- Read about [technology/concept]
|
|
- Understand [standard/protocol/algorithm]
|
|
- Look at [reference implementation]
|
|
|
|
2. **Design phase**
|
|
- Decide between [approach A] vs [approach B]
|
|
- Consider impact on [existing component]
|
|
- Plan database/storage changes
|
|
|
|
3. **Implementation phase**
|
|
- Start with [minimal version]
|
|
- Add [capability 1]
|
|
- Add [capability 2]
|
|
|
|
4. **Testing phase**
|
|
- Unit test [component]
|
|
- Integration test [flow]
|
|
- Performance test under [load scenario]
|
|
|
|
**Gotchas:**
|
|
- [Common mistake 1]: [How to avoid]
|
|
- [Common mistake 2]: [How to avoid]
|
|
|
|
**Resources:**
|
|
- [RFC/spec/documentation] - [What to focus on]
|
|
- [Blog post/paper] - [Key insights]
|
|
|
|
### Challenge 7: [Another Advanced Feature]
|
|
|
|
[Continue pattern]
|
|
|
|
## Expert Challenges
|
|
|
|
### Challenge 8: [Major Feature Requiring Significant Work]
|
|
|
|
**What to build:**
|
|
[Ambitious extension that changes how the system works]
|
|
|
|
**Estimated time:**
|
|
[Realistic estimate - days or weeks]
|
|
|
|
**Prerequisites:**
|
|
You should have completed [earlier challenges] first because this builds on [concepts].
|
|
|
|
**What you'll learn:**
|
|
- [Expert level concept 1]
|
|
- [Expert level concept 2]
|
|
- [Real world engineering skill]
|
|
|
|
**Planning this feature:**
|
|
|
|
Before you code, think through:
|
|
- How does this affect existing functionality?
|
|
- What are the performance implications?
|
|
- How do you migrate existing data/users?
|
|
- What's your rollback plan if it breaks?
|
|
|
|
**High level architecture:**
|
|
|
|
```
|
|
[Detailed architecture diagram of the new feature]
|
|
```
|
|
|
|
**Implementation phases:**
|
|
|
|
**Phase 1: Foundation** (X-Y hours)
|
|
- [What to build first]
|
|
- [Why this order]
|
|
|
|
**Phase 2: Core Feature** (X-Y hours)
|
|
- [Main functionality]
|
|
- [Key algorithms/logic]
|
|
|
|
**Phase 3: Integration** (X-Y hours)
|
|
- [Connect to existing system]
|
|
- [Handle compatibility]
|
|
|
|
**Phase 4: Polish** (X-Y hours)
|
|
- [Error handling]
|
|
- [Performance optimization]
|
|
- [Documentation]
|
|
|
|
**Testing strategy:**
|
|
- [Test type 1]: [What to verify]
|
|
- [Test type 2]: [Scenarios to cover]
|
|
- [Test type 3]: [Edge cases]
|
|
|
|
**Known challenges:**
|
|
1. **[Challenge 1]**
|
|
- Problem: [What goes wrong]
|
|
- Hint: [Direction toward solution]
|
|
|
|
2. **[Challenge 2]**
|
|
- Problem: [Issue]
|
|
- Hint: [Guidance]
|
|
|
|
**Success criteria:**
|
|
Your implementation should:
|
|
- [ ] [Requirement 1]
|
|
- [ ] [Requirement 2]
|
|
- [ ] [Requirement 3]
|
|
- [ ] Handle [edge case]
|
|
- [ ] Pass [performance benchmark]
|
|
|
|
### Challenge 9: [Another Expert Challenge]
|
|
|
|
[Continue pattern]
|
|
|
|
## Mix and Match
|
|
|
|
Combine features for bigger projects:
|
|
|
|
**Project Idea 1: [Combined Feature Set]**
|
|
- Combine Challenge X + Challenge Y
|
|
- Add [new integration]
|
|
- Result: [What you end up with]
|
|
|
|
**Project Idea 2: [Another Combination]**
|
|
- [Details]
|
|
|
|
## Real World Integration Challenges
|
|
|
|
### Integrate with [External System/API]
|
|
|
|
**The goal:**
|
|
Make this project work with [real service].
|
|
|
|
**What you'll need:**
|
|
- [Service] account/API key
|
|
- Understanding of [protocol/API]
|
|
- Handle [authentication method]
|
|
|
|
**Implementation plan:**
|
|
1. [Step 1]
|
|
2. [Step 2]
|
|
3. [Step 3]
|
|
|
|
**Watch out for:**
|
|
- [Rate limits]
|
|
- [Authentication refresh]
|
|
- [Error handling]
|
|
|
|
### Deploy to [Platform]
|
|
|
|
**The goal:**
|
|
Get this running in production on [cloud platform/service].
|
|
|
|
**What you'll learn:**
|
|
- [Infrastructure as code]
|
|
- [Deployment automation]
|
|
- [Production monitoring]
|
|
|
|
**Steps:**
|
|
1. [Infrastructure setup]
|
|
2. [Configuration management]
|
|
3. [Deployment pipeline]
|
|
4. [Monitoring setup]
|
|
|
|
**Production checklist:**
|
|
- [ ] [Security requirement]
|
|
- [ ] [Performance requirement]
|
|
- [ ] [Monitoring requirement]
|
|
- [ ] [Backup/recovery]
|
|
|
|
## Performance Challenges
|
|
|
|
### Challenge: Handle [Scale Metric]
|
|
|
|
**The goal:**
|
|
Make this system handle [specific load] without falling over.
|
|
|
|
**Current bottleneck:**
|
|
[Component] can only handle [current limit] because [reason].
|
|
|
|
**Optimization approaches:**
|
|
|
|
**Approach 1: [Technique]**
|
|
- How: [Implementation]
|
|
- Gain: [Performance improvement]
|
|
- Tradeoff: [What you give up]
|
|
|
|
**Approach 2: [Another technique]**
|
|
- How: [Details]
|
|
- Gain: [Improvement]
|
|
- Tradeoff: [Cost]
|
|
|
|
**Benchmark it:**
|
|
```bash
|
|
[Load testing command]
|
|
```
|
|
|
|
Target metrics:
|
|
- [Metric 1]: [Goal]
|
|
- [Metric 2]: [Goal]
|
|
|
|
### Challenge: Reduce [Resource Usage]
|
|
|
|
**The goal:**
|
|
Cut [memory/CPU/bandwidth] usage by [percentage].
|
|
|
|
**Profile first:**
|
|
```bash
|
|
[profiling command]
|
|
```
|
|
|
|
**Common optimization areas:**
|
|
- [Area 1]: [What's inefficient, how to fix]
|
|
- [Area 2]: [Details]
|
|
|
|
## Security Challenges
|
|
|
|
### Challenge: Add [Security Feature]
|
|
|
|
**What to implement:**
|
|
[Specific security mechanism]
|
|
|
|
**Threat model:**
|
|
This protects against:
|
|
- [Attack 1]
|
|
- [Attack 2]
|
|
|
|
**Implementation:**
|
|
[Where to add it, how it works]
|
|
|
|
**Testing the security:**
|
|
- Try to [bypass method 1]
|
|
- Attempt [attack vector 2]
|
|
- Verify [security property holds]
|
|
|
|
### Challenge: Pass [Security Standard]
|
|
|
|
**The goal:**
|
|
Make this project compliant with [OWASP/CIS/NIST standard].
|
|
|
|
**Current gaps:**
|
|
- [Gap 1]: [What's missing]
|
|
- [Gap 2]: [What needs fixing]
|
|
|
|
**Remediation:**
|
|
[How to address each gap]
|
|
|
|
## Contribution Ideas
|
|
|
|
Finished a challenge? Share it back:
|
|
|
|
1. **Fork the repo**
|
|
2. **Implement your extension** in a new branch
|
|
3. **Document it** - add to learn folder
|
|
4. **Submit a PR** with:
|
|
- Your implementation
|
|
- Tests
|
|
- Documentation
|
|
- Example usage
|
|
|
|
Good extensions might get merged into the main project.
|
|
|
|
## Challenge Yourself Further
|
|
|
|
### Build Something New
|
|
|
|
Use the concepts you learned here to build:
|
|
- [Related tool 1] - [What it would do]
|
|
- [Related tool 2] - [Purpose]
|
|
- [Variation] - [How it's different]
|
|
|
|
### Study Real Implementations
|
|
|
|
Compare your implementation to production tools:
|
|
- [Tool 1] - [What they do differently]
|
|
- [Tool 2] - [Interesting design choices]
|
|
|
|
Read their code, understand their tradeoffs, steal their good ideas.
|
|
|
|
### Write About It
|
|
|
|
Document your extension:
|
|
- Blog post explaining [what you built]
|
|
- Tutorial for others to follow
|
|
- Comparison with [alternative approach]
|
|
|
|
Teaching others is the best way to verify you understand it.
|
|
|
|
## Getting Help
|
|
|
|
Stuck on a challenge?
|
|
|
|
1. **Debug systematically**
|
|
- What did you expect?
|
|
- What actually happened?
|
|
- What's the smallest test case that reproduces it?
|
|
|
|
2. **Read the existing code**
|
|
- [Similar feature] does something related
|
|
- [Component] might have the pattern you need
|
|
|
|
3. **Search for similar problems**
|
|
- [Forum/community]
|
|
- [Stack Overflow tag]
|
|
|
|
4. **Ask for help**
|
|
- Post in [discussion forum]
|
|
- Include: what you tried, what happened, what you expected
|
|
- Don't just paste error messages - explain your understanding
|
|
|
|
## Challenge Completion
|
|
|
|
Track your progress:
|
|
|
|
- [ ] Easy Challenge 1
|
|
- [ ] Easy Challenge 2
|
|
- [ ] Easy Challenge 3
|
|
- [ ] Intermediate Challenge 4
|
|
- [ ] Intermediate Challenge 5
|
|
- [ ] Advanced Challenge 6
|
|
- [ ] Advanced Challenge 7
|
|
- [ ] Expert Challenge 8
|
|
- [ ] Expert Challenge 9
|
|
|
|
Completed all of them? You've mastered this project. Time to build something new or contribute back to the community.
|