Challenge Overview
Project Overview
The client wants to create a Google Drive Ownership 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.
Your task will be to investigate the Google Drive API and provide a System Architecture which would outline the full architectural approach (and which would stipulate a POC as well) in a manner that we can ensure predictable maintenance and easy to utilize technology stack.
The basic requirements are as follows but more details are provided with attached document:
- General Workflow Overview (for full requirements consult the attached specification.)
- The application will allow for marking Google Drive users as "legal hold required" which will initiate specific actions with reference to any documents in the user's Google Drive. We will have the ability to search for users to mark through a variety of search criteria available from the Directory API.
- Alternatively, the tool should provide an option to upload a CSV list of users, by email address.
- Marking a user as legal hold should trigger an index process to index all documents owned by that user, including document name, document Id, revision date, revision Id, hasComments (true/false) at the time that the Legal Hold is placed. The index will contain multiple revisions for each document.
- The application will provide the ability to search indexed users and provide all the documents and document revisions for that user. It will then allow for exporting and downloading documents/revisions.
- Special considerations will be needed for comments within the documents.
- If the document has open comments, download a copy of the current document as Microsoft Office format, and store this copy in the user's drive.
- Provide a link in the index to access the Office document (which should include open comments in the proper locations).
- The application will allow for marking Google Drive users as "legal hold required" which will initiate specific actions with reference to any documents in the user's Google Drive. We will have the ability to search for users to mark through a variety of search criteria available from the Directory API.
- UI View
- The application must be easy to use. a preliminary prototype is attached with this competition and your Architecture should also specify the integration for the front end tier.
- Security is important and Users will have three levels of authentication:
- Support User: Will be managed by Google Group that is specified by the Service Admin.
- eDiscovery User: Will be managed by Google Group that is specified by the Service Admin.
- Service Admin: Needs to be super admin of domain and should be set in config file of the system.
Competition Task Overview
Your task will be to look through the prototype and the provided requirements document and to abstract the whole functionality into a set of well defined RESTFul APIs which will work with the the Google Drive API that you will have to research through.
We will use java for the backend. The application will have an easy to use Front-End (consult the protoype) so you will need to choose the proper front-end technology for this.
It is expected that your effort will provide the standard System Architecture deliverables such as the SDS and the TCUML diagrams. It is expected that you will stipulate a single Module Architecture. In addition you should provide a POC contest specification as follows:
POC:
Create a POC contest specification which would show the full utilization of the technology stack by connecting to the Google Drive API to control access to files as well as to process the files. This would be a simple utilization of the Google Drive API which would show the ability to process the complete list of files and copy some of them to a new folder. The point here is to show through the API that we can control all the aspects of the proposed functionality. The reasoning is to quickly show full utilization of the technology stack. Note that a proof of concept is a simple and easy to developed solution that shows the viability of the approach so as catch any issues with development early in the cycle. Such a POC contest specification must be included in your architecture.
Platform Requirements:
- Windows Server 2012
- Apache
- Microsoft SQL 2012
- Java Google Client Libraries and APIs
- Java
- JavaScript
- HTML
Final Submission Guidelines
Submission Deliverables
- System Design Specification (SDS) document written in an MS Word compatible document
- Class and sequence diagrams authored using the TopCoder UML tool.
- Downstream competitions specifications (Module Architecture Spcification, POC, Application Requirements Specification, Integration Assembly, see points 4 and 5 below)
- POC contest specification
- Application Requirements Specification contest specification to formally document all the functionality with specific data input and output documentation as well as all the front-end functionality requirements.
- NOTE: Game plan is *not* required.