Git Product home page Git Product logo

18f / dol-whd-14c Goto Github PK

View Code? Open in Web Editor NEW
16.0 19.0 17.0 15.21 MB

The 14(c) system will become a modern, digital-first service. Applicants will be provided an intuitive online experience, guiding them through the information needed to complete their application correctly.

License: Other

C# 61.76% CSS 2.97% ASP 0.02% HTML 16.39% Batchfile 0.07% JavaScript 18.14% TypeScript 0.48% PowerShell 0.18%
agile-bpa government dol labor 18f tts forms whd disability 14c-certificate

dol-whd-14c's Introduction

Department of Labor - Wage and Hour - Section 14c

Web

CircleCI codecov Maintainability Dependenc Status

API

[build status missing] [coverage missing] [quality missing] [dependency status missing]

Table of contents

History

The 14(c) system is a form-based process currently relying on paper submissions that will become a modern, digital-first service to assist with a Department of Labor Wage and Hour Division (WHD) program to help employ workers with disabilities. Applicants will be provided an intuitive online experience, guiding them through the information needed to complete their application correctly.

This work began several years ago during a workshop WHD and 18F ran to articulate 14(c) mission, users, and needs, including sessions on prototyping and risk assessment.

To deliver this work, WHD and 18F have conducted two engagements using the Agile Delivery Services BPA (Agile BPA) to help WHD hire a vendor so they can build an online application together that can gain an ATO and be deployed into a production environment and, in the future, maintained by WHD without 18F or even vendor support. Through this, 18F helped build capacity at WHD and in the vendor community way by modeling and coaching in modern software development practices so agencies and vendors can develop products in an agile, human-centered, outcome-oriented way.

More information about this engagement is in the Agile BPA Task Order.

More information about the 14(c) program can be found in this fact sheet.

Users

End users of the application are:

  • Employers who submit 14(c) certificate applications through the online interface
  • DOL WHD personnel who need to track, review, and update submitted applications as they move through the review and approval process
  • Administrators who will control authorization to view the 14(c) applications

Problem being solved and project goals

Section 14(c) certification is currently a paper-based process. Applicants download PDFs of the paper application from DOL's website, complete the forms by hand, and submit them to WHD via regular mail. Recognizing that this process is slow and cumbersome for both applicants and the WHD staff responsible for reviewing and issuing section 14(c) certificates, WHD began collaborating with 18F to modernize the process.

Project Management

Install Zenhub extension and view project board.

Technology Stack

Technology Stack

System Context

System Context

Conceptual Physical Architecture

Conceptual Physical Architecture

Application Components

User Interface

See DOL.WHD.Section14c.Web Readme

Project Description
DOL.WHD.Section14c.Web AngularJS front-end

REST Services

DOL.WHD.Section14c.sln
Project Description
DOL.WHD.Section14c.Api ASP.Net WebAPI REST Services
DOL.WHD.Section14c.Business .Net Class Library for business services
DOL.WHD.Section14c.Business.Test MSTest Unit Tests
DOL.WHD.Section14c.Common .Net Class Libraray for shared coded
DOL.WHD.Section14c.Domain .Net Class Libarary for entities
DOL.WHD.Section14c.DataAccess .Net Class Libarary for Entity Framework Context

Database

The PostgreSQL database used to persist user and 14c application data is generated by Entity Framework Code First Data Migration using the DB2 provider. The migration includes all required seed data to run the application.

Schema Diagram

Migration Configuration

System Administrator User Seed

To estblish an intial System Administrator user account the database migration seeds an account for [email protected]. By default this accounts password is expired and must be reset at the first login or through the forgot password flow.

Deploying

Conceptual Deployment Model

Conceptual Deployment Model

WebDeploy Packages and Build Artifacts

The projects AppVeyor builds generates three web deployment artifacts. They can be found in the build under the artifacts tab. As noted in the conceptual deployment model, they can be deployed manually through a IIS Application Import or through the MSDdeploy command. For continuous integration settings through AppVeyor see the appveyor.yml

1. DOL.WHD.Section14c.Web.zip

This package contains the front end Web Application. This is a zip of the WebPack production configuration output found in the /dist folder. It is not a native WebDeploy package but can be used as one as configured in the AppVeyor Continuous Deployment.

Configuration Settings

All configurations for the Web project are set in the env.js. This file is excluded from Continuous Deployment and should be updated manually if needed.

Setting Description Default
api_url* Full URL of the REST API Service http://localhost:3334 (Local develoment URL)
requireHttps Use secure cookie true
tokenCookieDurationMinutes Token Cookie Expiration in Minutes 20160 (14 days to match server AccessTokenExpireTimeSpanMinutes)

* Must be configured during deployment

2. DOL.WHD.Section14c.API.zip

This package is a Web the REST Api

Configuration Settings

The following are setup as WebDeploy parameters and can be set with command line MSDeploy arguments or manually via a IIS MMC WebDeploy Package Import. The parameters are setup to transform their respective values in the Web.config file. An alternate deployment option would be to exclude the Web.config file and set them in an alternate configuration management process.

Setting Description Default
ConnectionString* PostgreSQL database connection string No Deployment Default
SMTPServer* SMTP Email Server Address localhost
SMTPPort* SMTP Email Server Port 25
SMTPUserName* SMTP Email Server User Name empty
SMTPPassword* SMTP Email Server empty
EmailFrom* SMTP Email Server from address [email protected]
AttachmentRepositoryRootFolder* File Path (Local or UNC path) where application attachments should be stored No Deployment Default
UserLockoutEnabledByDefault Enables or Disabled user login attempt lockout true
DefaultAccountLockoutTimeSpan Minutes to lockout user 15
MaxFailedAccessAttemptsBeforeLockout Login attempts befer user is locked out 3
PasswordExpirationDays Number of days before password must be changes 90
AccessTokenExpireTimeSpanMinutes Token Expiration Minutes for Reset Password and Email Verification Links 20160 (14 days, ASP.net Default)
AllowedFileNamesRegex Regex for allowed filenames ^(.*.(doc
RequireHttps Require HTTPS for secure communication true

* Must be configured during deployment

3. DotNet.CoverageReport.zip

This artifact contains static files of a ReportGenerator code coverage report for .Net. This is a development artifact and is not needed for production.

Public domain

This project is in the worldwide public domain. As stated in CONTRIBUTING:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.

dol-whd-14c's People

Contributors

binwang89 avatar brendansudol avatar davoodharun avatar dciceman avatar jefferey avatar jmmcnj avatar joebhaktiardol avatar klinden avatar ltsheu avatar mgwalker avatar michellemcnellis avatar mmurthydol avatar mrmatt57 avatar oghaffari avatar rrefoy avatar simplyshang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dol-whd-14c's Issues

As a Policy Team Member and a Certification Team Manager, I want access to all submitted application data, so that I can continuously evaluate and improve current policy and procedures. AC: Data should be sort-able, searchable and able to produce reports. AC: It should take no longer than 1 minute to pull reports.

Descripition:
Summary web page screen showing all certificate applications, ability to filter, sort and search through the data to find what they are looking for, no advanced reporting capabilities

Tasks:

  • Create design/wireframe for summary view
  • Create a screen for all submitted applications, apply paging, select # of records per page
  • Show the fields listed in the AC below
  • Ability to sort by the fields listed, route back to server for long term solution
    sort by expiration date, employer name, main establishment state, cert effective date
  • Filter by the following fields:
    cert status, cert type
  • Free text search across fields listed below:
    employer name
  • Count of all records that come back from sort/filter
  • model the following fields: Certificate Effective Date, Certificate Expiration Date, Certificate Status and Certificate Number
  • Back end work to create the appropriate aggregate grouping, new data model, group all aplications by EIN, most recent application which will already have the main establishment, doing the counts on the worksites
  • Test Coverage to 90%

Old Description:*******
Evaluate wage rates to be better informed for policy and procedures
Geographic analysis
Not a set of canned reports, more like a web page on admin interface with capabilities to view and filter

Report what DoL does on their website will be routinely pulled

Initial requirements - simple capabilities
Advanced requirements - maybe more canned reports and searching capabilities

Access to high level statistics.
*****End Old Description

AC: Ability to view all certificates sorted, filtered and/or searched by the fields identified above in the Tasks section. Summary view will include all of the following fields: Certificate #, employer name, cert effective date, cert expiration date, cert status, # of workers, cert type (CRP, hospital, SWEP, business), initial/renewal?, # of work sites, main establishment state

As a Certification Team Member, I need a system that allows me to easily navigate within the submitted application (logical tabbing, multiple screen use, etc.) so that I can work in a more efficient manner.

Descripition:
Applies to detail view of application after clicked from summary view

Tasks:

Acceptance Criteria:
Ability to view submitted application and data associated with that application. Design/wireframes similar to web forms and front end design along the lines of #59.

Considerations:

  1. Application Status
  2. Role

As a Certification Team Manager and Team Member, I would like the system to assign a pending status to incoming applications

Descripition:
Submission done in user story #8, certificate status created in data model in #7, this user story would consist of setting the certificate status field to pending on submission from story #8
Applications should automatically be in "pending" status after the employer submits the application.

Tasks:

  • Back end set certificate status on submission to Pending

Acceptance Criteria: As applicant submits a completed application the system sets the certificate status to pending
Considerations:

  1. Application Status
  2. Role

As a Certification Team Member and as an Applicant, I want a system that performs preliminary data validation checks on fields that have predetermined or controlled answers (i.e. dates, rates, etc.), so that proper information is submitted and the certification team member spends more time analyzing the more substantive part of the application.

Card #2 is specifying that individual fields have parameters to improve/ensure accuracy (standardized formats for dates, wages, zip codes, phone numbers, etc.) cc: @elizabethstriegel

As a Certification Team Manager and a Policy Team Member, I want to be able to access and search all diary sheets so that I can review potential systemic violations. Diary sheets have the functionality to be reviewed and have access to certificate team in addition to investigators and other WHD users.

Access to certificate team in addition to investigators and other WHD users, team Manager and team member

search across all diary sheet logs to search, helpful canned search drop down of common violations
Liz to provide possible violations list, look into violation letters to possibly attach to diary, what can we do to help automate manual process and data collection

As a Certification Team Member, a Certification Team Manager and a Policy Team Member, I would like to be able to access the applicant's enforcement history from WHISARD and certificate history from CPS within the system, so that the data can be used to inform the certification decision and so that staff spends less time researching and entering information.

Enforcement database separate to form application, communication to pull information from WHISARD, tied by EIN information, data issue on EIN maybe so backup on name and other linking criteria.

Lookup validation check on EIN agaisnt CPS and WHISARD

Brandon Brown - POC on finding out more on interfacing with WHISARD

separate logins used for both systems, CPS and WHISARD

As an Applicant, I would like to provide an e-signature for my form 226

Descripition:
Provide an e-signature method following one of methods in User STory #60 on the bottom of the Assurances Section during application creation process.

Tasks:

  • Create the following input fields in Assurances Section:
    Full Name, Title, Date
  • Provide a statement certifying you are the authorized individual and it is you, see below:

Acceptance Criteria: Applicant will be able to enter their full name, title and date on the Assurances section and save it to the database acknowledging the Assurances statement.

As an Applicant, I want an online registration form for my Organization - Dev Framework

  • Create Registration form (simple no design)
  • Data Modeling
  • Create Services, including DOL Complexity Rules
  • Captcha

Org REgistration Flow
User enters email, pwd, EIN if duplicative, then blocked from creating account and told who to contact from DoL to investigate (internal business rules to contact the associated POC for certificate), , two factor auth (in future phases not in phase 1)

As a Certification Team Member and a Certification Team Manager, I want to be able to document issues/potential violations in an internal diary sheet (saved in historical record) so that systemic problems can be identified and analyzed.

Descripition:
Per section diary entries, summary on application summary page, diary entry consists of: 1. comment, 2. section associated to comment, 3. upload file per entry, NO delete or edit of existing diary entry, Security: everyone except applicants can add diary entries

Tasks:

  • Front end diary entry form, summary view simple table including comment, author, section and file uploaded, auth trimmed by everyone except applicants
  • BAck End data modeling, setting controllers, auth/role features
  • Test Coverage 90%

Acceptance Criteria: administrative team can add diary entries per section (see wireframes from user story #11 ) Add comment, section dropdown, and file upload. No ability to delete or edit after submittal of entry.
Considerations:

  1. Application Status
  2. Role
    OLD Notes:***linked list per application of issues

Notes - date time, who, continue adding instead of edit

Liz - provide examples of diary sheet

The system will include the following statuses for certification: pending, issued, withdrawn, amending, denied, revoked, expired.

All user types involved with this User story

withdrawn - manaul process
pending - submitted state, allows them to continue existing status until they make decision (only for existing approved applicants) : pending new or pending with authority to continue to operate
amending - (Liz to ask for definition from Chicago team)
issued - approved
denials - during application
revoke - post application
expired - have to re apply before certification expiration date

As a Certification Team Member, I need a system that allows me to create reports of my workload, organize calendar events and report time spent on activities (WH-40), so that I can manage my work.

WH-40 is lcoated in WHISARD, time they spend on different activities and cases, enforcement activity

Time sheets
Specialists record activity
Certificate team members record activity

effort needs to be tracked by WHISARD ultimately
Need to figure out whether data transfer or merged, POC Brandon Brown, discuss WHISARD interface and data

Most folks by end of week, enter time, end of pay period
Liz - will go back to research need and WH-40 system
calendar events - interfacing from where?
Alert/Reminder on follow up related to diary entries

As an Applicant, I want to add or manage users associated to my account

Screen for registered applicant, enters email address and button for invite/add user, sends email to user and user follows registration link to finish account and set their own password, active or inactive user flag, limit on total, delete hides but doesnt remove user from users table, same workflow different beginning point

As an Applicant, I want the ability to save and retrieve my application in progress so I can work on the form in more than one session.

Descripition:
Applicant can save the application in draft while filling out the application, continue when logs back in, auto saves in n minutes (configurable) - last saved date time stamp. Further Dashboard capabilities can be found in User STory #70 Session timeout will be encompassed in Security User STory # Save in separate data store from submitted applications, Allowing user to do what they want in draft state, not enforce sequential completion.

Tasks:

  • Create logic to change button to continue versus start a new application on landing page
  • Implementation of save functions:
    auto-save, next section save
  • Implementation of Last saved date timestamp

Acceptance Criteria: Applicant can save in draft state any time, autosave - during go to next section, autosave - every n minutes (configurable). Landing page will only have start or resume application.
Considerations:

  1. Application Status : N/A
  2. Role: Applicant

As a Certification Team Member and a Certification Team Manager, I need a system that will only allow submission of a complete application (i.e. all applicable fields answered and documents attached), so that I can more effectively use time reviewing applications.

related to #507
Descripition:
Identified rules for the summary validation, to ensure a complete form is submitted by the Applicant. All fields presented to the user should have a response except fax number (requires a response/check box). Prevailing wage surveys, attach an additional sheet if needed (not required)

Tasks:

  • apply rules that get fed into User STory #58
  • submit form, save data to database, provide user verification statement pre-submit

Acceptance Criteria: User clicks on summary view and submits application. Valid application is saved to the database, invalid application returns errors (not visible/in UI)
Considerations:

  1. Application Status
  2. Role: Applicant

Card #4 is asking that we only allow complete applications to be submitted (we will have a predetermined criteria defining 'complete'). cc: @elizabethstriegel

As a Policy Team Member and a Certification Team Manager, I want data that shows where applicants struggle to complete the application, so that we understand where additional compliance assistance or modification to the process is needed and to inform enforcement.

information on what is failing before submittal, where the draft applications are stuck or empty areas/gaps in information submitted

Certain metrics, - abandonment, possibly use usage analytics tools on consumer facing site

Research Spike - look into analytic tools on web traffic

As an Applicant, I want conditional logic to ensure I only have to complete relevant sections so that I am not confused about what sections to complete and the time it takes to complete the application is reduced.

226 form
1. Section 1 everyone
a. Follow up on signature - esignature
2. Section 2 everyone sees
a. Except 3rd on b unless they click YES
3. Section 3 - everyone
a. Lead with questions on if fields
i. Only seen if says yes
4. Section 4 - If YES from 3
5. Section 5 - eveyone
6. Section 6 - everyone, the number they put there should be linked to 226a for 5 locations, include validation to see if they match
7. Sectiion 7 - everyone
8. Section 8
a. A and b - everyone
b. C and d - dependent on answer to b
c. Yes to b triggers attachment on d - could be large file attachment
d. E - everyone
9. Section 9
a. if they say no to 9a, skip to 11
b. If they say yes, see how many workers in b
i. c, questions indicate whether to show the 1st, 2nd or 3rd
10. Section 10
a. Only see 10 if yes to 9a
b. A is an answer
c. B is an attachment, different file formats
11. Section 11
a. If they say nom, skp to 13
b. If yes, c is three questions
i. Minimum of 3 on 11c
12. Section 12
a. Only see 12 if yes to 11a
b. A is an answer
c. B is an attachment
13. Section 13
a. If box checked then proceed
14. Section 14
a. If box checked then proceed
15. Section 15
a. Everyone
16. Section 16
a. Everyone on a
b. For b, everyone shoulkd see, if they hgave a worker than they need yes/no in field

226a Form
1. Section 1 - everyone
2. Section 6 - mapped to Section 7 number of workers from 226 form
3. Section 7 - should match number of workers entered and number for rows completed should match as well

As an Applicant, I would like a user friendly "Application Info" Section within the 226/a form

Descripition: Following the approved wireframes v2, develop the section for Application Info performing the following tasks. Does Include the instructions within the section as well as expanded areas within section, does not include validation #6 , conditional logic #9

Tasks:

  • Implement UI based on Wireframes
  • Implement Data Modeling to support the Section of the form
  • Implement the Services/API layer to support the SEction of the form

Acceptance Criteria: Review of section within 226/a form web application follows look and feel as dictated from wireframes v2, Technical review will meet standards as defined by QASP and 18f guidelines

As an Applicant, I would like a user friendly "Employer" Section within the 226/a form

Descripition: Following the approved wireframes v2, develop the section for "Employer" performing the following tasks. Does include the instructions for the section, does not include #9, and the validation from user story #6 and also the file upload user story #15

Tasks:

  • Implement UI based on Wireframes
  • Implement Data Modeling to support the Section of the form
  • Implement the Services/API layer to support the SEction of the form

Acceptance Criteria: Review of section within 226/a form web application follows look and feel as dictated from wireframes v2, Technical review which meets QASP standards from 18F guidelines

As an Applicant, I want certain form fields to be pre-populated with previously used information when I begin a renewal application so that it takes less time to complete the application.

Applicants are only logging in every other year

Person would be logging in for one EIN at a time, need to understand if that requirement exists - Liz

Most are renewals, very few new - Liz

Do not pull out all data, Liz to identify a few fields from the last application for that organization/EIN

Acceptance Criteria : few fields from the last application for that organization/EIN, fields identified by Liz

As a Certification Team Member and a Certification Team Manager, I want the system to perform a validity check on the EIN number provided by the employer on the submitted application.

what are the 14c form features?
EIN Validation - masking, validation

Research Spike - look into IRS service validation on EIN

looking into briefly the IRS service, will fall back on confirmation during registration if complexity is too great.

Acceptance Criteria:
Anytime Applicant enters EIN there is a validity check on that data point, to be further defined through above mentioned Research spike.

As an Applicant I want to be able to upload required documents (time studies) so that I can submit a complete application.

Description: Allow the user to upload PDFs, office docs and images to support their form data.

  1.   File types (doc, docx, xls, xlsx, ppt, pptx, pdf):
    
    • This is a good start for the file types. We would also suggest adding .jpg & .png for users that have image documents
  2.   Size limits, where are they stored, access to uploaded documents
    
    • 10MB is a good start. The infrastructure team will create a NFS mount point size of 500GB. All cluster web nodes will connect to the mount point location.
    • If a file upload is initiated at submission, the database (PostgreSQL) can point/map to the mount point location.
    Question: Will the uploaded files contain PII?
  3.   Document management? - how long to keep, administrative access on process
    
    • 7 years for record retention
  4.   OCIO manages files in another VM, web server and path file share in past
    
    • Operations will provide the mount point location as soon as the development environment is ready
  5.   Thomas to find out direction from OPA, Mike. Answer: backend to be saved to fileshare over smb
    
    • See question 2 response
  6.   Records Management discussion on document retention/lifecycle
    
    • See question 3 response

Acceptance Criteria: See identified attachment sections, types (pdfs, office docs), size (less than 10MB), file upload: check browser compatibility, ability to edit/delete in draft state, backend to be saved to fileshare over smb

• I believe the application logic should handle this criteria.
Question: Will the application prohibit users/admins from deleting documents that have submitted?

As a Policy Team Member, I need certificate information (only what can be made public) to be pulled and posted to the WHD website so that we are transparent with section 14(c) certificate data. AC: ability to post quarterly; AC: data can be searched, sorted and filtered.

As an Applicant, I want to receive status updates via email notifications, so that I know where my application is in the process.

Asking for email address, that they identify as POC or email as register, or option when submitting

Need to capture workflow diagram/state

STatus is simple, pending, received and issued or denied

Renewals are included, reminder for resubmitting
Alert templates?
Submission
Decision
Reminder 60 days out
Certificate expiration

Nightly backend process that runs for possibly all alerts

Acceptance Criteria:
Applicant receives email during the following actions: submission, decision, reminder 60 days out, Expiration

As a Policy Team member, Certification Team Manager and Applicant, I want the system to provide the online calculators as an option, so that standard and accurate information is submitted.

provide existing calculators, access when needed in the process:

Time studies,
Wage studies (?) - capture use in online calculator instead of uploading attachments
existing today - cant save data today, would be great option, at a minimum save to pdf and attach, need to further explore/research saving directly

Acceptance Criteria:
At a minimum provide contextual links in the form for the user, look into possible saving of calculated data and effort involved.

As an Applicant, I would like a user friendly "Assurances Section" within the 226/a form

Descripition: Following the approved wireframes, develop the section for "Assurances" performing the following tasks. Will not include e-signature, will be addressed in user story #44

Tasks:

  • Implement UI based on Wireframes v2
  • Implement Data Modeling to support the Section of the form
  • Implement the Services/API layer to support the SEction of the form

Acceptance Criteria: Review of section within 226/a form web application follows look and feel as dictated from wireframes, Technical review will meet standards as defined in QASP following 18f guidelines

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.