# The Java EE 7 Tutorial

# 58.3 Administration Interface

The administration interface of Duke's Tutoring is used by the tutoring center staff to manage the data employed by the main interface: the students, the students' guardians, and the addresses. The administration interface uses many of the same components as the main interface. Additional components that are only used in the administration interface are described here.

## 58.3.1 Enterprise Beans Used in the Administration Interface

The following enterprise bean, in the `dukestutoring.ejb` package of the `dukes-tutoring-war` project, is used in the administration interface.

- `AdminBean`: A stateless session bean for all the business logic used in the administration interface. Calls security methods to allow invocation of the business methods only by authorized users.

## 58.3.2 Facelets Files Used in the Administration Interface

The following Facelets files, under `src/main/webapp/`, are used in the administration interface:

- `admin/adminTemplate.xhtml`: Template for the administration interface

- `admin/index.xhtml`: Landing page for the administration interface

- `login.xhtml`: Login page for the security-constrained administration interface

- `loginError.xhtml`: Page displayed if there are errors authenticating the administration user

- `admin/address` directory: Pages that allow you to create, edit, and delete `Address` entities

- `admin/guardian` directory: Pages that allow you to create, edit, and delete `Guardian` entities

- `admin/student` directory: Pages that allow you to create, edit, and delete `Student` entities

- `resources/components/formLogin.xhtml`: Composite component for a login form using Java EE security

- `WEB-INF/includes/adminNav.xhtml`: XHTML fragment for the administration interface's navigation bar

## 58.3.3 CDI Managed Beans Used in the Administration Interface

The CDI managed beans used in the administration interface are located in the `dukestutoring.web` package in the `dukes-tutoring-war` project.

- `StudentBean.java`: A managed bean for the Facelets pages used to create and edit students. The first and last names have Bean Validation annotations that require the fields to be filled in. The phone numbers have Bean Validation annotations to ensure that the submitted data is well-formed.

- `GuardianBean.java`: A managed bean for the Facelets pages used to create guardians for and assign guardians to students. The first and last names have Bean Validation annotations that require the fields to be filled in. The phone numbers have Bean Validation annotations to ensure that the submitted data is well-formed.

- `AddressBean.java`: A managed bean for the Facelets pages used to create addresses for students. The street, city, province, and postal code attributes have Bean Validation annotations that require the fields to be filled in, and the postal code attribute has an additional annotation to ensure that the data is properly formed.

## 58.3.4 Helper Classes Used in the Administration Interface

The following helper classes, found in the `dukes-tutoring-war` project's `dukestutoring.web.util` package, are used in the administration interface.

- `EntityConverter`: A parent class to `StudentConverter` and `GuardianConverter` that defines a cache to store the entity classes when converting the entities for use in JavaServer Faces user interface components. The cache helps increase performance. The cache is stored in the JavaServer Faces context.

- `StudentConverter`: A JavaServer Faces converter for the `Student` entity class. This class contains methods to convert `Student` instances to strings and back again, so they can be used in the user interface components of the application.

- `GuardianConverter`: Similar to `StudentConverter`, this class is a converter for the `Guardian` entity class.