Challenge Overview
App environment:
- AngularJS application
Basic requirements for this challenge:
- Update AngularJS to capture updated roles on some new endpoints explained more details below
- Improve the unit testing for the new additions
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 need improve existing AngularJS to capture updated REST API
Technology Stack
Deployment environment requirements
- localhost
- AWS
Database
- MS SQL Server
Code access
Angular Source Code
https://gitlab.com/quartz-energy/ops-frac-schedule/web-application (dev)
Postman Collection for API endpoints Testing
https://gitlab.com/quartz-energy/ops-frac-schedule/java-services/tree/dev/docs (dev)
App Demo on Development
http://ec2-18-207-109-34.compute-1.amazonaws.com
Application support 3 roles:
systemadmin/password
operatoradmin/password
operator/password
Live DEV Backend REST API for Testing with Postman (Important: it using HTTPS with port: 8433)
https://ec2-18-207-109-34.compute-1.amazonaws.com:8443/api/v1/
Submission Requirements
1). Login page
- Logo on the left top Login show up after click logout button
2). Dashboard Page
List view
- Remove the Bottomhole Lat, Long fields
- Add new column for Target Formation Fields
3). Schedule Data displayed max 3 months from today
- All schedule data only need displayed max 3 months from current date only.
- Need affect data on these pages:
-- Dashboard (Map, List and Chart view)
-- Upcoming Schedule
- Double check all those pages
4). Submit Data Page
Manual Update
- Add "API Number" to Single Well Upload form.
- Need use auto-load for API Number
- Separate TVD and Target Formation Fields on Single Well Upload form.
- Make sure that API Number field is enforces as a unique index in the database.
- Our manual upload will need to perform an insert/update operation rather than a simple insert.
- If a API Number already exists in the system we'll need to update data in the system based on the latest info provided.
- We should keep existing comments and risk assessment data.
- Make sure Manual Update and Batch upload have same height
Batch Upload
- Make sure that API Number field is enforces as a unique index in the database.
- Our batch upload will need to perform an insert/update operation rather than a simple insert.
- If a API Number already exists in the system we'll need to update data in the system based on the latest info provided.
- We should keep existing comments and risk assessment data.
- When upload field, If operator column value is different than current user logged in company value, need cancel the upload and displayed error message "You only able to upload data for your own company schedule".
- Make sure Manual Update and Batch upload have same height after select the file
- Check batch upload sample data from here: https://drive.google.com/open?id=17O9mOUjYw1ZiMVrRgvddJ3d-Eb51_Wyj
5) Upcoming Schedule
- Need able to export of upcoming schedule as xlsx
6). List View, Chart View
- List view and chart view need able to download as xlsx
7). Contacts and User Table
- Right now contact and user table are separated, need combine both data as single table
- We just get updated endpoints to use same user table.
- Fields need captured:
Old Table contact
id
contactType
fullName
jobTitle
email
phone
city
companyId
stateId
Old Table User
id
username
passwordHash
fullName
email
role
companyName
companyId
secretQuestionId
secretQuestionAnswerHash
status
lockedUntil
loginFailedAttemptCount
Merged Table (User & Contact)
Id
contactType
username
passwordHash
fullName
phone
Email
role
companyName
companyId
city
stateId
secretQuestionId
secretQuestionAnswerHash
status
lockedUntil
loginFailedAttemptCount
Important Notes!
- Data structure for Contacts need remain the same
- Important: Contacts informations from all users need displayed for all user role.
- System Admin role need remain only able to edit All company contacts or users
- Operator Admin & Operator roles need remain only able to edit their own company contacts only.
- Update these endpoints to load correct data: “contact api” endpoints
- Sort data in list and grid view from primary contact and secondary contact (See the grey colored number)
- Contacts need sort from Primary, Secondary contact and then normal users
- Update title from 1 and 2 into primary contact and secondary contact
- Hover on card button, should not scale the box.
- Click phone number need load the tel function
7). User management page
- Add new configuration field for Welcome Tours configuration from database.
- Create new endpoints to toggle the values: true or false
- Add new column on table
- On Add/Edit User need a new checkboxes for Welcome Tours below the Set this as operator admin
8). Unit Testing Fixes
- Make sure the updated Frontend pass the unit testing for all services, component, pages, routes, etc
- Submit git patch based current repo on dev branch: https://gitlab.com/quartz-energy/ops-frac-schedule/web-application
- Updated README in markup language
- Challenge winner need send Merge Request to our repo
- AngularJS application
Basic requirements for this challenge:
- Update AngularJS to capture updated roles on some new endpoints explained more details below
- Improve the unit testing for the new additions
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 need improve existing AngularJS to capture updated REST API
Technology Stack
Deployment environment requirements
- localhost
- AWS
Database
- MS SQL Server
Code access
Angular Source Code
https://gitlab.com/quartz-energy/ops-frac-schedule/web-application (dev)
Postman Collection for API endpoints Testing
https://gitlab.com/quartz-energy/ops-frac-schedule/java-services/tree/dev/docs (dev)
App Demo on Development
http://ec2-18-207-109-34.compute-1.amazonaws.com
Application support 3 roles:
systemadmin/password
operatoradmin/password
operator/password
Live DEV Backend REST API for Testing with Postman (Important: it using HTTPS with port: 8433)
https://ec2-18-207-109-34.compute-1.amazonaws.com:8443/api/v1/
Submission Requirements
1). Login page
- Logo on the left top Login show up after click logout button
2). Dashboard Page
List view
- Remove the Bottomhole Lat, Long fields
- Add new column for Target Formation Fields
3). Schedule Data displayed max 3 months from today
- All schedule data only need displayed max 3 months from current date only.
- Need affect data on these pages:
-- Dashboard (Map, List and Chart view)
-- Upcoming Schedule
- Double check all those pages
4). Submit Data Page
Manual Update
- Add "API Number" to Single Well Upload form.
- Need use auto-load for API Number
- Separate TVD and Target Formation Fields on Single Well Upload form.
- Make sure that API Number field is enforces as a unique index in the database.
- Our manual upload will need to perform an insert/update operation rather than a simple insert.
- If a API Number already exists in the system we'll need to update data in the system based on the latest info provided.
- We should keep existing comments and risk assessment data.
- Make sure Manual Update and Batch upload have same height
Batch Upload
- Make sure that API Number field is enforces as a unique index in the database.
- Our batch upload will need to perform an insert/update operation rather than a simple insert.
- If a API Number already exists in the system we'll need to update data in the system based on the latest info provided.
- We should keep existing comments and risk assessment data.
- When upload field, If operator column value is different than current user logged in company value, need cancel the upload and displayed error message "You only able to upload data for your own company schedule".
- Make sure Manual Update and Batch upload have same height after select the file
- Check batch upload sample data from here: https://drive.google.com/open?id=17O9mOUjYw1ZiMVrRgvddJ3d-Eb51_Wyj
5) Upcoming Schedule
- Need able to export of upcoming schedule as xlsx
6). List View, Chart View
- List view and chart view need able to download as xlsx
7). Contacts and User Table
- Right now contact and user table are separated, need combine both data as single table
- We just get updated endpoints to use same user table.
- Fields need captured:
Old Table contact
id
contactType
fullName
jobTitle
phone
city
companyId
stateId
Old Table User
id
username
passwordHash
fullName
role
companyName
companyId
secretQuestionId
secretQuestionAnswerHash
status
lockedUntil
loginFailedAttemptCount
Merged Table (User & Contact)
Id
contactType
username
passwordHash
fullName
phone
role
companyName
companyId
city
stateId
secretQuestionId
secretQuestionAnswerHash
status
lockedUntil
loginFailedAttemptCount
Important Notes!
- Data structure for Contacts need remain the same
- Important: Contacts informations from all users need displayed for all user role.
- System Admin role need remain only able to edit All company contacts or users
- Operator Admin & Operator roles need remain only able to edit their own company contacts only.
- Update these endpoints to load correct data: “contact api” endpoints
- Sort data in list and grid view from primary contact and secondary contact (See the grey colored number)
- Contacts need sort from Primary, Secondary contact and then normal users
- Update title from 1 and 2 into primary contact and secondary contact
- Hover on card button, should not scale the box.
- Click phone number need load the tel function
7). User management page
- Add new configuration field for Welcome Tours configuration from database.
- Create new endpoints to toggle the values: true or false
- Add new column on table
- On Add/Edit User need a new checkboxes for Welcome Tours below the Set this as operator admin
8). Unit Testing Fixes
- Make sure the updated Frontend pass the unit testing for all services, component, pages, routes, etc
Final Submission Guidelines
What To Submit?- Submit git patch based current repo on dev branch: https://gitlab.com/quartz-energy/ops-frac-schedule/web-application
- Updated README in markup language
- Challenge winner need send Merge Request to our repo