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. 

2.0 Challenge Details

This module will provide the entire application, including data models, exceptions, backend services, frontend controllers/intercepts and HTML/JS.This module will provide the entire application, including data models, exceptions, backend services, frontend controllers/intercepts and HTML/JS.

2.1 Model Classes, ERD and JPA Mapping

The model classes are shown on "Model Class Diagram".

Model classes marked as <<JPAEntity>> are JPA entities persisted in SQL Server 2012 databse, and module architects are required to provide database schema and JPA mappings.

See the SDS Section 4 “Data Model” for the description of the models.

2.2 Business Services and Exceptions

The business service interfaces and common exceptions are shown on "Service Interface Diagram".

See the SDS Section 5 “Process Architecture” for the description of the services and how the services are used for addressing the requirements.

2.3 REST APIs

The System Architecture proposes a set of REST APIs for browser/client-side JavaScript to consume, and it is expected that the REST APIs will be implemented using Spring MVC framework.

The REST APIs are documented in the accompanied REST_API_Specification.docx.  Module architects are welcome and encouraged to improve the REST APIs as appropriate.

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.

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 jobs

We want to ensure that when a job or jobs are indexed we get a scalable solution in terms of       how the jobs are run. Please refer to SDS section 7.3 and 7.4. This is quite important as we want         to get a solution that works well for different scenarios involving different document processing loads.

3.0 Provided Materials

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

  1. System Architecture
  2. ARS
  3. Completed POC with source code and deployment guide.
  4. Original Prototype
  5. Original Client Document.


Final Submission Guidelines

Your deliverable will consist of a single zip containing:

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

ELIGIBLE EVENTS:

2015 topcoder Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30049815