Register
Submit a solution
The challenge is finished.

Challenge Overview

App environment:
- Node web application

Basic requirements for this challenge:
- Swap existing REST API services from NodeJS into Java, Maven, Springboot based
- Make sure all services remain working like existing and the front-end app not breaking
- Update the unit testing that  would involve mocking the services, database layer etc as and when required.
- Improve/Upgrade AngularJS to have more secure API transaction

Project Background
The goal of this project is to create a web based tool for operators to share frac schedules and locations with other operators. Currently we have a consortium of 15 operators that share their schedules via email roughly once a week to monthly. The email list changes monthly with people being added or taken off, which makes it tough to manage if you are getting all the schedules you need. Not only does the email list change, but so does each individual company’s frac schedule. With so many moving parts, manually sharing emails and aggregating schedules is unsustainable. These emails contain API # (unique public well identifier), well name, Frac start, Frac end, Bottom Hole Lat/Long, Surf Hole Lat/Long, and sometimes the underground formation name.  

In the current state, we go into our internal mapping tool or the State website and manually measure out the distances between our well locations and the offset operators locations to see if we need to prepare our wells.  From this frac schedule, it us up to the individual companies to check in to see if offset fracs are on time or delayed and if the operator will impact any of their assets. This methodology is cumbersome and time consuming. A tool should be easily accessible, be able to quickly upload operator information and provide a visual and user adjustable display of areas and times where frac operations may cause operational hazards due to frac hits: http://www.eagleford.training/2015/08/what-are-frac-hits/

For this challenge, we’re in part where we need swap the existing REST API that use NodeJS into Java, Maven, Springboot technologies to consume for the AngularJS app.
Expected submission results need make sure the services send correct data that will be consumed for AngularJS app on the frontend.

Technology Stack
Programming language(s) to be used:
- AngularJS

Deployment environment requirements
- localhost
- Heroku
- AWS

Database
- MS SQL Server

Code access
AngularApp Source Code
https://gitlab.com/quartz-energy/ops-frac-schedule/web-application
Application support 3 roles, make sure your updates affect all roles
operator/password
admin/password
user/password

OLD NodeJS REST API Source Code
https://gitlab.com/quartz-energy/ops-frac-schedule/api-services-alt

NEW Java REST API Source Code
https://gitlab.com/quartz-energy/ops-frac-schedule/java-services
FYI: For quick usage you can use this Dev REST API endpoints: https://ops-frac-api-java.herokuapp.com/api/v1

Postman Collection for API endpoints Testing
https://gitlab.com/quartz-energy/ops-frac-schedule/java-services/tree/dev/docs

General Submission Requirements

1). Swap the REST API services
- Updated REST services need implemented the unit testings that would involve mocking the services, database layer etc as and when required.
- Adjust unit test for all services if needed and make sure they works like existing
- You need double, triple, four checks all pages to make sure updated Angularapp working like existing.
- You can compare with the live version here: https://ops-frac-schedule.herokuapp.com
- Your submission need working with Rest api on localhost and hosting version
- Remove unused codes/files after your updates
- Let us know if need some clarifications about this submissions requirements.

2). Secure Service Request
- We need your suggestion to improve secure service request
- We need to improve/upgrade the API transactions to be more secure
- Suggest best practice solutions and explains that on your submissions
- If need to update the REST API too let us know your approach/suggestions! Using SSL or HTTPS?

Final Submission Guidelines

What To Submit?
- All source code that implement the challenge requirements.
- README in markup language (if Any)

Web Browsers Requirements
- IE11
- Microsoft Edge
- Firefox latest version
- Safari latest version
- Chrome latest version

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30066547