Challenge Overview
In this sprint challenge, you'll build a Music Playlist Service that combines all the concepts you've learned about DynamoDB and RESTful APIs. This project will test your ability to create, read, update, and delete data in a DynamoDB database through a RESTful API interface.
What You'll Be Building
You'll develop a service that allows users to create and manage music playlists. The service will:
- Store playlist and song data in DynamoDB tables
- Provide RESTful API endpoints to manage playlists
- Support creating, retrieving, updating, and deleting playlists
- Allow adding and removing songs from playlists
- Handle proper error cases and status codes
Skills You'll Demonstrate
- DynamoDB Modeling: Design appropriate data models for playlists and songs
- Java Annotations: Use DynamoDB annotations to map Java classes to DynamoDB tables
- Data Access: Implement retrieval of items with partition and sort keys
- Data Modification: Create and update items in DynamoDB tables
- RESTful API Design: Create endpoints following REST principles
- HTTP Methods: Use appropriate HTTP methods for different operations
- Error Handling: Manage and return proper HTTP status codes
Technical Requirements
The project will require you to:
- Implement DynamoDB table creation
- Create annotated model classes for DynamoDB entities
- Build data access classes using the DynamoDB Enhanced Client
- Develop service classes with business logic
- Create RESTful API controllers
- Implement proper exception handling
- Write tests to verify your implementation
This challenge will bring together everything you've learned about NoSQL databases and RESTful APIs to create a functional, real-world application. Follow the setup instructions below to get started.