Sprint Challenge

Setup Instructions

This sprint challenge will test your understanding of Iterators, Spring Boot, and DynamoDB operations. Follow the instructions below to get started.

  1. Fork and clone the sprint challenge repository
  2. Complete the challenge requirements
  3. Submit your work through the Portal

Challenge Overview

In this sprint challenge, you'll be working on a Kindle Publishing Service application. This challenge will test your skills in:

  • Implementing and using Iterators in Java
  • Setting up Spring Boot controllers and endpoints
  • Performing DynamoDB delete operations
  • Creating efficient DynamoDB queries

Each part of the challenge focuses on concepts covered in the modules of this sprint. Take your time to understand the requirements and use the resources provided to complete the challenge successfully.

Module 1 Challenge: Iterators

You'll implement a custom iterator for the Kindle Publishing Service application to safely traverse and manipulate collections of book data. This will require:

  • Creating a class that implements the Iterator interface
  • Implementing the required methods: hasNext(), next(), and remove()
  • Ensuring the iterator maintains proper state during traversal
  • Using the iterator to safely modify the collection during iteration

Module 2 Challenge: Spring Boot

You'll build a RESTful API for the Kindle Publishing Service using Spring Boot. This will involve:

  • Creating controllers with appropriate request mapping annotations
  • Implementing endpoints for creating, reading, updating, and deleting book resources
  • Handling path variables and request parameters
  • Returning appropriate HTTP status codes and responses
  • Implementing proper error handling and validation

Module 3 Challenge: DynamoDB Delete Operations

You'll implement functionality to remove books from the DynamoDB database, including:

  • Deleting books by their primary key
  • Implementing conditional deletions to ensure data integrity
  • Creating a "soft delete" mechanism to mark books as inactive rather than permanently removing them
  • Handling errors and edge cases in deletion operations

Module 4 Challenge: DynamoDB Query Operations

You'll implement efficient querying capabilities to retrieve book data based on various criteria:

  • Querying books by author (partition key)
  • Limiting query results to specific page sizes
  • Implementing pagination for large result sets
  • Using comparison operators to filter books by publication date or other attributes
  • Optimizing queries for performance and efficiency

Resources