Designing an application is a very diverse activity; it involves gathering requirements from the client, assessing their priority and feasibility, translating the requirements into a technical design document, and finally implementing the design in a robust, reliable, extensible manner. This theme visits all of these aspects with a project of your own choosing.
Intruduction to the Scrum methodology and terminology.
How to gather requirements, and how to describe them as specifications, features, usecases and user stories.
Using the java.util.logging API in your applications.
Instructions on getting started with the Spring (Boot) web MVC framework, in IntelliJ. See also the demo repository.