Sprint Challenge

Challenge Overview

This Sprint Challenge is designed to assess your understanding of custom exceptions, dependency injection, and linked list data structures. You'll apply what you've learned throughout the sprint to solve practical problems.

Instructions

Part 1: Custom Exceptions

Design and implement a custom exception hierarchy for a banking application. Your exceptions should effectively communicate various error cases such as insufficient funds, account not found, and invalid transactions.

Requirements:

  • Create a base exception for your banking service
  • Implement at least three specific exception types that extend the base
  • Include proper constructor signatures and serialVersionUID
  • Demonstrate exception chaining in at least one scenario
  • Write clear, descriptive error messages

Part 2: Dependency Injection

Refactor a tightly-coupled application to use dependency injection with Dagger. The starter code contains classes with direct instantiations that need to be converted to use dependency injection.

Requirements:

  • Identify all dependencies in the application
  • Create appropriate Dagger modules and components
  • Implement constructor injection
  • Apply appropriate scoping to components
  • Write unit tests that leverage the DI architecture

Part 3: Linked List

Implement a specialized linked list that maintains elements in sorted order. Your implementation should optimize for the specific performance characteristics of linked lists.

Requirements:

  • Implement a SortedLinkedList that maintains elements in ascending order
  • Write methods for add, remove, and find operations
  • Ensure all operations maintain the sorted property of the list
  • Include thorough unit tests
  • Document the time complexity of each operation

Submission

Submit your completed Sprint Challenge via GitHub. Make sure to include:

  • All source code files
  • Unit tests
  • A README.md with your approach and any assumptions made
  • A brief reflection on what you learned (optional but recommended)