Challenge Overview

App environment:
- NodeJS
- Java Maven 8
- Docker and Docker Compose

Basic requirements for this challenge:
- Bug Bash on Frontend and Backend of Thor Early Alert Tool web app

Challenge Overview
Project Overview

The Early Alert Tool (EAT) is a data store for all of the Codes and Standards which Thor needs to follow when developing products. As codes and standards change or improve, the divisions within Thor (specifically the division leaders and product managers) need to be alerted of these changes.
The division leaders document the issues which arise from any of these changes along with and need to track details on the action plans for those issues. A number of different users would will be using the application. There could be codes & standards committee representatives who notify other key point people (product managers or division leaders) of the changes.
The main goal of the application is three-fold:
1. Highlight the standards which have been identified by the business divisions as important
2. Notify people within divisions of standards changes (email functionality)
3. Track the internal corporate action plans issues related to standards changes

On this Bug Bash challenge you need fix issues related to Backend and Frontend of current Thor Early Alert Tool app. We will be paying per accepted fix based on the prize amount noted in each issues title.

Good luck and let's discuss any questions you have. See you in the challenge forum!

Technology Stack
Frontend:
- Angular

Backend:
- Java 8
- Maven 3+
- SQL Server 2017
- Spring 5+

Code Access
Ragnar: https://ragnar.topcoder.com/api/v1/gitlab/groups/registration/b810c65e-4096-4dd9-a5a2-c032a26e9b7a-1534262634640
- Use frontend repo: https://gitlab.com/thor-early-alert-tool/early-alert-tool  > dev branch  as frontend source code
- Use backend repo: https://gitlab.com/thor-early-alert-tool/backend  > dev branch as rest api source code
- Check architecture repo: https://gitlab.com/thor-early-alert-tool/architecture/tree/master/docker-setup  > master branch to setup the database
- Let us know if you have some questions about setup and running the app
- Check ReadME for detailed instructions, let us know if you have some problem/question about setup the app.

Setup the app
- Current application need running using docker and access localhost:8080/eat/ using JBOSS 7.0.0 EAP
- Place frontend and backend folder on same level on your environment
- do ‘npm install’ build the angular on frontend folder
- do ‘mvn clean package -Dmaven.test.skip=true’ build the war.file on backend folder
- back to backend folder run `docker-compose build`
- you can running the app by `docker-compose up`
- And running this command to pull sample data 'sudo docker exec f3dc2648c615 sh -c "python import.py 'full example data.xlsx'"'
- Replace f3dc2648c615 with docker container ID of backend builded image > tea-sqlsrv
- Access http://localhost/eat/ to check the app running

Login info:
There are 3 user roles on the app:
- admin/Password123
- datamanager/Password123
- approver/Password123

General Requirements:
- In this Bug Bash challenge, we are looking for your help to fix a bunch of bugs in our repo
- Check the issues list here: https://gitlab.com/thor-early-alert-tool/backend/issues
- Click or Topcoder X registration link to sync your gitlab account and topcoder username: https://x.topcoder.com/api/v1/gitlab/groups/registration/ab3b4f1d-fddc-4a17-a76d-5d92c1424506-1541510601420
- Read about Bug Bash description here: https://help.topcoder.com/hc/en-us/articles/115002087948-What-is-a-Bug-Bash-
- The bug list will be updated frequently, we will be adding new bugs and closing bugs that you and other competitors fix. Make sure to keep watching the GitLab list.
- Keep best practice implementation on current Angular or Java Maven app
- Please, subscribe yourself to get notifications from this frontend and backend repos to participate in this Bug Bash.

Bug Bash Rules:
- Each issue has a dollar value. Dollar values are based upon complexity and priority of issue.
- You can assign any unassigned issue to yourself with a "tcx_OpenForPickup" (first come first serve).
- You must update the label to “tcx_Assigned”, and remove the “tcx_OpenForPickup” label.
- You can only self assign one issue at a time. The nature of it being assigned will indicate if it is not available to anyone else.
- You will fix the ticket as a pull request to the master branch
- Once a ticket is fixed, you should label it "tcx_ReadyForReview" where it will then be verified. If something is still broken, the copilot will comment on the ticket.
- After submitting and tagging "tcx_ReadyForReview" you are eligible to accept another. You can do as many tickets as you want, as long as you follow the rules above.
- If the ticket is fixed properly, your pull request will be merged in, and the ticket will be marked "tcx_FixAccepted".
- If the ticket is “tcx_Feedback”, it should be your first priority to fix the issue.
- When the ticket is closed, payment will be recorded, when we issue the payment the tag will be updated to “tcx_Paid”
- If an assigned task is not done in 8 hours, you will be unassigned from the ticket, and it will be opened back up to the community.
- You can ask questions directly on the ticket comments.
- Bug Bashes are different than Bug Hunts - please make sure to check the contest type in the contest name when registering.

IMPORTANT:
- DO NOT make INDENTATION AND SPACE changes. Please focus on completing challenge Tasks. We need to track your changes so focus only code fixes.
- DO NOT DELETE EXISTING FILES/LIBRARY. Confirm with us if needed.
- RE-TEST AND COMPARE ON all required browsers before you submit

SUBMISSION FLOW
- First, make sure your "dev" branch is ALWAYS UPDATED! We will be pushing new code updates in parallel.
- CREATE NEW BRANCH based on our latest "dev" branch with the title format "issues/handle/XX" where XX is the number on the GitLab Issue.
- DO NOT FORK into your own repo. you MUST create from our "dev" branch. We will reject your submission if you submit from your own repo.
- Start working your fixes in that branch, commit and push to your working repo.
- Once you are satisfied with your fixes, you should label it "tcx_ReadyForReview.  
- Next you will send MERGE REQUEST to "dev".
- Put Ticket url you were working on in the Merge Request description.
- If something is still broken, the Reviewer will comment on the ticket. We will update the label as " tcx_Feedback" and you can complete the fixes based on the feedback.

Final Submission Guidelines

Web Browsers Requirements
Your submission must look and work consistently across these following browsers on the latest versions:  
- IE11
- Chrome,
- Edge,
- Safari,
- Firefox

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30073859