Department of Labor - Wage and Hour - Section 14c
[build status missing] [coverage missing] [quality missing] [dependency status missing]
Table of contents
- Project History
- Problem being solved and project goals
- Project Management
- Technology Stack
- System Context Diagram
- Conceptual Physical Architecture
- Application Components
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.
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.
Conceptual Physical Architecture
|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|
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.
System Administrator User Seed
To estblish an intial System Administrator user account the database migration seeds an account for
email@example.com. By default this accounts password is expired and must be reset at the first login or through the forgot password flow.
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
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.
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.
|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
This package is a Web the REST Api
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.
|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 firstname.lastname@example.org|
|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
This artifact contains static files of a ReportGenerator code coverage report for .Net. This is a development artifact and is not needed for production.
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.