They have for now, three agencies in the following cities: Paris, Montreal and Tokyo.
In order to determine the company's sales and predict future sales, the company needs you to develop a new Sales Analytics Tool. It must be able to extract data about sales from the different agencies, transform it to fit analytics need and generate reports.
Because it needs to be powerful and scalable you naturally chose to use Java Enterprise Edition Technologies.
The first version of the application must provide the following features:
- Authenticate a user
- Retrieve and store the sales information from the three agencies
- Display for each agency and for the union of the three the following information: ?o The total number of sales made o The total amount sold?o The best selling products?o The less sold products ?o The breakdown by channel (direct sales, Internet...) o The breakdown by agency?o And some other information... ?You have to use Servlet / JSP implementing JSP Model 2 Architecture and EJB 3.1 with JPA 2. The project will be deployed on a Glassfish AS v3.1.
1. Extract sales data
Until now, the three agencies worked without a common IT system. Each provides a different way to export data about their 100 last sales:
The Parisian agency:?o Provide a SOAP Web Service with the WSDL available at this URL: ???http://supseller-paris.servme.fr/app/SalesExportService?wsdl
The Montreal agency:?o Provide a Web API exposing a JSON representation available at this URL: ???http://supsellermontreal.supinfo.cloudbees.net/sales/export.json
The Tokyo agency:?o Provide a simple CSV file available at this URL: ???http://supsellertokyo.supinfo.cloudbees.net/sales/export.csv?For now, they need a manual process to publish data so don’t expect frequent updates. But for future ?purpose, you have to configure your application to automatically check for new data everyday!
2. Authenticate and logout a user ?The users need to authenticate them in order to access company information. So the home page must provide a login form with email and password fields. ?In the first version, there is no way to register a bank advisor, so you’ll add them directly in database. ?Be careful, because SupMarket cares a lot about security, the database must contain hashed passwords only!
Once authenticated, a user must be redirected to a dashboard page with the following information about all the company sales:
o The total number of sales made?o The total amount sold?o The best selling products (represented by a pie and a table) o The less sold products (represented only in a table)?o The breakdown by channel (represented by a pie)?o The breakdown by agency (represented by a pie)?o About the customers:
??The breakdown by Gender (represented by a pie)???The breakdown by Marital Status (represented by a pie)???The breakdown by Income Level (represented by a pie and a table) ??The most loyal customers (represented in a table)
To allow more specific analyzes, you must also provide a filter to display that information by Agency, by Gender, by Marital Status and by Income Level. More than one filter at a time can be used.
Of course, to avoid performance problems on the client-side, the filtering must be done on the server-side.