HTML and CSS Reference
Applying It All: The Mega App
In this chapter, we will apply most of what we learned in the previous chapters in a sample application which we
will call the Mega App. We will start from the application specification and wireframes and after understanding the
application requirements, we will develop the application architecture including Data model, back-end services,
front-end templates, application security including authentication, and authorization and error handling. And we
will see how to implement this architecture using Java EE 7 technologies. The Mega App application utilizes many
Java EE 7 technologies: it uses JSF 2.2 for handling the user interface interactions with the help of Twitter Bootstrap,
EJB 3.2 for transaction handling, JPA 2.1 for persistence, CDI 1.1 for bean management, and Java Bean Validation
for handling model validation. In this chapter, you will learn how to create a suitable application architecture and
implementation for JSF 2.2 applications in the Java EE 7 space.
Mega App Specification
Mega App is an online library application that allows its users to search for topics. After getting the available topics
from the search, the user can request a copy for one or more book(s) from the search results. In the back office, the
application administrator(s) can approve or reject the requests for the topics. If a book (or more) request(s) are
approved, then the Mega App user will be able to download the approved book(s) from his/her approved book listing.
Figure 13-1 shows the Mega application book request flow from the application user perspective.
Figure 13-1. Mega App book request flow