Challenge Overview

Project Overview

LightSpeed is an Excel based VBA application and in this project we are converting this application to a web based app to make it much easier to use. The web app will be an HTML5 app with offlice capabilities.

Competition Task Overview

For this challenge, we are building the backend to support the front end pages, please also check the prototype requirements to see what the backend needs to support.

Note we do not have an architecture for this challenge so asking questions early in the forum is important!

Also make sure you check the VBA code in the provided application to understand how it works now.

Functional Requirements

  • Login:
    • This will be identical to SRT (we will provide code for this in the forum)
    • We'll need to support two different roles for now: PM and PDM (in the future we'll support more roles and more actions like edit / comment, so make sure this is extensible)
      • ���PM - ability to view projects that are assigned to them or colleagues in a practice/division
      • PDM - ability to view all projects within a division or practice by selecting multiple users data
  • Settings: settings need to saved for users, and this basically involves selecting district / division / PM / PDM / etc... you will need to go through the documents in the forum to understand this
  • We'll need to support Project View and WBS View for this project, services must be defined and implemented to retrieve data for the views, search methods must also be available to allow searching of records. Again you'll need to go through the documents we provide in the forum to understand how to work with this.
  • Logging must be done with details

Technologies

Basically we are using the same technology stack as SRT for this project, except that we don't need to support Oracle as alternative backend database.

Project Structure / Architecture

This project must follow same project structure as SRT:

  • pom.xml in root folder to build the whole project (in scope of this challenge)
  • model module that contains definition of all models (in scope of this challenge)
    • ���This should contain all entities needed by this application
  • core-services module that contains all backend service interfaces and implementations (in scope of this challenge)
    • Plain java interfaces and implementations to support login / authorization / data retrieval / etc... (basically everything needed to cover all functional requirements)
    • SQL scripts to create / drop tables and delete data
    • ORM mapping file
    • Necessary config files (database, spring, log4j, etc... these will similar to SRT)
    • Specifically we need the following to be carefully designed and implemented:
      • an interface to pull data from external data source
      • an implementation of the interface to pull data from Excel files (sample files provided) and insert into the application database (in the future we may also have another implementation to pull data from a different database)
      • a job that will use the interface to pull data at a configurable interval
      • there should also be a service or method that will be available to the web app that can be called to trigger data pull
  • frontend module that contains all Spring controllers / interceptors (in scope of this challenge)
    • ���Check SRT code to see how login / authentication / authorization is handled
    • We'll need controllers to serve all requests from the frontend, frontend code will only work with controllers through RESTful style calls (again similar to SRT)
  • webapp module that contains the web project (not in scope of this challenge)

Testing

Unit tests are required for the backend classes / services. Unit tests should run with in-memory H2 database so that no extra configuration is needed to run the unit tests (i.e. developer can simply checkout the code and run mvn test or some other target to execute unit tests, no need to setup db or insert test data, etc...)

Technology Overview

  • Java
  • Postgres
  • Hibernate
  • Tomcat
  • HTML5
  • Spring MVC
  • AngularJS

Documentation Provided

Register to download documents from challenge forum.



Final Submission Guidelines

Submission Deliverables

A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials 

Below is an overview of the deliverables:

  • Ful code that covers all requirements
  • A complete and detailed deployment documented explaining how to deploy the application including configuration information.
  • JUNIT Tests to verify your application successfully meets the requirements of the application.
  • The maven build script to compile code and run unit tests.

Final Submission

For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30051154