18F / gsa-small-business-experience

Prototype for the GSA Small Business Experience 18F project, Spring 2022
https://federalist-35400506-693f-4f4d-815c-e4fb7841233f.app.cloud.gov/site/18f/gsa-small-business-experience/
Other
0 stars 0 forks source link

GSA Small Business Experience

The GSA Small Business Experience project seeks to improve the experience of small and disadvantaged businesses working with the General Services Administration. Our process may serve as a model for improving the user experience of further resources in GSA.gov.

Information about this repository

This code uses the Jekyll site engine and built with Ruby, and is based off of the Federalist template federalist-uswds-jekyll. It incorporates the U.S. Web Design System v 2.0.

This repository uses GitHub Actions to deploy via Federalist.

As we did not need blog functionality, posts / drafts / etc were removed from this code base.

Development

Installation for development

$ git clone https://github.com/18F/gsa-small-business-experience
$ cd gsa-small-business-experience

In order to run tests you will also need to install pa11y-ci.

Running the application

You will need to install Ruby (version in .ruby-version) and node + npm

$ npm install
$ bundle install
$ npm start (same as bundle exec jekyll serve)

To build but not serve the site, run npm run build or bundle exec jekyll build.

Open your web browser to localhost:4000 to view your site.

Tests and code scanning

$ npm test

npm test will run the following scanners:

woke will not scan anything appearing in your .gitignore file by default. You may also configure woke to ignore additional paths by modifying the .wokeignore file.

pa11y-ci may be configured with .pa11yci. Although you may choose to run this with the :sitemap option, results appear to be better when relying on a list of URLs in .pa11yci.

The rspec tests are available in the /spec directory

Github actions

When opening a pull request, the above actions will run automatically. Currently, the Federalist USWDS template is experiencing an issue with builds intermittently failing. This means that either the scans or the deployment to Federalist may fail unexpectedly. We recommend running npm test locally before pushing, as well as npm run build in order to confirm that your branch is working since the scanners and deployment may not get a chance to run in GitHub when the building step fails.

Technologies you should be familiarize yourself with

How to edit

Configuration

Assets

Customizing opportunity explorer quiz and results

The questions and answers for the opportunity explorer are found in:

The logic for selecting which programs and set-asides to display is in _assets/js/opportunity-explorer.js.

Programs are agnostic of set-aside types (although we recognize there are GWACs created for specific socio-economic small businesses). Each rule for program display defines the relevant industries, if the company is well-established (>2 years old, $25K income), and if their products / services are above the micro-purchase threshold.

true means a selection of "Yes" for that question is required to display the program, false means "No" is required, and null indicates that the question is irrelevant for that particular program.

For example, the "Telecommunications and network services" IDIQ program will be displayed if the user selects either "all industries" or "IT: Satellite Communications" as their industry, and indicates that they are selling above the micro-purchase threshold. Their answer about the age of their business and profits is not considered, as it is null.

"communications" : {
  "industry" : ["all", "itsatcom"],
  "revenue" : null,
  "purchase" : false,
}

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.