Challenge Overview

1.0 Project Overview

The client wants to create a Google Drive Legal Hold Time Capsule Management Tool. The purpose of this tool is to create an application with a web frontend to allow better management of the Google Drive contents of a Google Apps User once an account has been suspended. 

This architecture update will add some additional Admin functionality as outlined in the ARS.

An admin will provide a user email address or list of email addresses to the legal hold tool. Currently, the tool is designed to run an index job of documents for those users subject to legal hold. This is a new requirement to introduce a second option, to mark a user as ready for document transfer.

Please refer to the provided updated ARS as well as the original client requirements document.

2.0 Challenge Details

This module will provide the necessary elements of the update including any new data models, exceptions, backend services, frontend controllers/intercepts and HTML/JS.

2.1 Model Classes, ERD and JPA Mapping

You will need to follow the existing Module Architecture and update it with the new requirements. Make sure to follow the same patterns and conventions.

When necessary make sure to provide JPA entities that will be persisted in SQL Server 2012 database, make sure also to include any additions to the database schema and JPA mappings.

2.2 Business Services and Exceptions

Please add any new services and exceptions needed to fulfill the new requirements. Make sure to follow the existing design conventions and patterns.

2.3 REST APIs

You will also need to provide REST APIs for browser/client-side JavaScript to consume, and it is expected that the REST APIs will be implemented using Spring MVC framework.

Please provide the updates for the REST APIs in the accompanied REST_API_Specification.docx. Please follow the conventions used there.

2.4 Frontend UI

The frontend pages will be constructed with HTML5 (with Polymer elements), JavaScript, AJAX and Spring MVC technologies. The frontend Spring MVC controllers are used to handle user requests (in particular REST APIs), HTML5 (with Polymer elements) and JavaScript are used to show the data and interact with user.

Most of the UI should be implemented using Polymer framework (in particular Core elements and Paper elements):

In general, client-side JavaScript will call REST APIs using Polymer core-ajax and various other Polymer core and paper elements will display data obtained from REST APIs using Polymer data-binding.

As part of your update you will need to provide the controllers and necessary UI elements as done in the previous Module Architecture

Note: Ensure that the Front-End is abstracted out well enough that we could switch to another set of HTML5 elements.

2.5 Parallel execution of document transfer jobs

We want to ensure that when a document transfer jobs is executed we get a scalable solution in terms of how the jobs are run. Please refer consult how the Module Archiecture does its indexing jobs at this time and follow that pattern for scalability.

2.6 Architecture Document update from current BackEnd/REST assembly

During the last Back-End assmebly some changes were done and some of the code does not follow the current architecture. You should also check the REST Assembly for any changes.

Part of your task will be to update the architecture to sync it with the existing back-end assembly. Please show all such updates using a PURPLE color.

3.0 Provided Materials

You will have access to the following support materials (listed in order of importance):

  1. System Architecture  (reference only)
  2. Module Architecture (you will update this)
  3. Updated ARS
  4. Back-End/REST-API Assemblies (you will update sync the Architecture with this code)
  5. Completed POC with source code and deployment guide (reference only)
  6. Original Prototype (reference only)
  7. New Client Document.


Final Submission Guidelines

Your deliverable will consist of a single zip containing:

  • Application Design Specification [Updated]
  • Assembly Diagram [Updated]
  • Class Diagrams [Updated]
  • Sequence Diagrams [Updated]
  • Assembly Specifications (This is straight to development effort)
  • ERD [Updated]
  • JPA Mappings [Updated]
  • REST Documentation  [Updated]

���NOTE: please follow the convention of documenting new additions in RED and updates in BLUE.

ELIGIBLE EVENTS:

2015 topcoder Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30050164