Level 7 - Project Milestones

Project Milestones

Below is a list of milestones for the Level 7 project. Each will likely take more than one class to complete, but they are divided based on topic

Milestone 1 - Introduction to API concepts

What is this all about? Here you will present some background material on the project, APIs, and RESTful web services.

Milestone 1

Milestone 2 - Project Code Structure

The structure of a Spring Boot application. We'll discuss the 3-tier architecture, as well as a couple special files that are important to our application.

Milestone 2

Milestone 3 - Documenting and Accessing Our Code with Swagger

Time to start writing code. We'll talk about Controller classes, Swagger, and how to return custom HTTP response codes when needed.

Milestone 3

Milestone 4 - The Presentation Layer

Here we will add a new controller class that will map a request URL to the method that we want to execute when a request is sent there.

Milestone 4

Milestone 5 - The Service Layer

Our service layer class will be called by the controller layer when a request comes in. We will add a new class to contain all of our application's business logic

Milestone 5

Milestone 6 - The Repository Layer

Our endpoint's journey through the layers of application will end here, at the repository layer. Eventually we will use the repository layer to retrieve data for our application, but for now lets just get it added.

Milestone 6

Milestone 7 - Fetching Data with WebClient

Time to request some actual data to give to our users. Using the WebClient class, we will retrieve information from an external service.

Milestone 7

Milestone 8 - Improving the Results

We are going to create a custom Java object in which to receive the response from our WebClient request. Then, we can improve the quality of our application's results by removing unnecessary fields, and renaming them if need be.

Milestone 8

Milestone 9 - Our First Unit Test

Now let's begin adding unit tests in order to verify our code is working as expected in an easily repeatable way. We'll start with the easiest class in our application to test: the HomeController.

Milestone 9

Milestone 10 - Unit Testing the Controller and Service Classes

Continuing with unit testing, we will add unit tests for our other controller class, as well as our service class.

Milestone 10

Milestone 11 - Unit Testing the Repository Class

Our final unit test will be the most complex. Here we will unit test our repository class, which includes mocking our WebClient request and the associated classes.

Milestone 11

Milestone 12 - Preparing for Integration Testing

Here we will start discussing integration testing, and make some changes to our project to prepare for our new tests.

Milestone 12

Milestone 13 - Integration Testing the Home Controller

Time to add our first integration test. We will go over the basics by adding a test for our HomeController class.

Milestone 13

Milestone 14 - Integration Testing the LocController

In the final section of our project, we will add an integration test for our LocController class. This includes discussing how we are able to supply a mock, and verify the response from the request is what we expect

Milestone 14

Epilogue - The Front End

Our completed application provides users with pristine data, but as humans we usually interact with web applications through a convenient graphical user interface, known as a website. While creating a front end application is not within the scope of this level, teachers can utilize a convenient template to create a React application that is capable of displaying information returned from our application. This demonstrates how it can all come together to form a modern, human-friendly set of web applications that provide, as well as display, information.

Epilogue - The Front End