Sprint Challenge Overview
In this sprint challenge, you'll demonstrate your understanding of design patterns, UML diagrams, Gradle, and file I/O by building a real-world application.
Challenge Requirements
- Implement the Builder pattern for object creation
- Create UML class and sequence diagrams
- Set up a Gradle project with dependencies
- Implement file I/O operations
Detailed Challenge Tasks
In this sprint challenge, you'll apply all the concepts you learned throughout the sprint:
- Builder Pattern Implementation:
- Create a WelcomeLetter class with multiple properties
- Implement a Builder class inside the WelcomeLetter class
- Add validation for required fields in the build() method
- Create fluent interface methods that return the builder
- UML Diagrams:
- Create a class diagram showing your WelcomeLetter class structure
- Include properties, methods, and access levels
- Create a sequence diagram showing how objects interact
- Show method calls, return types, and alternative cases
- Gradle Setup:
- Configure build.gradle with proper dependencies
- Set up project structure correctly
- Ensure tests can be run with Gradle
- File I/O Implementation:
- Read template data from files
- Process data and generate output
- Write results to output files
- Handle exceptions properly
- Close file resources correctly
Testing Your Implementation
Your solution will be tested against a series of unit tests that verify:
- The Builder pattern works correctly with both required and optional fields
- Your validation logic correctly detects missing required fields
- Your File I/O operations correctly read from and write to files
- Your implementation follows best practices for resource management
Resources
Submission
Submit your completed project through the Portal. Make sure to:
- Push your code to GitHub
- Include all required UML diagrams
- Ensure all tests pass
- Follow the project's coding standards