VA Forms System Core
Welcome to the VA.gov Forms Library
VA Forms System Core (VAFSC) is the second generation of the forms library
which is built using React, Formik, and Typescript.
What is the forms library
?
The forms library is the current production system that most forms are built with inside of vets-website
. This legacy system uses a forked version of React JSON Schema Form (RJSF) and a config based approach to designing and developing forms. Although this system worked well up to this point, VAFSC will be a major improvement by incorporating React components and giving engineers and designers the power back that RJSF did not allow for.
NPM Package: NPM va-forms-system-core
Github Pages: VA Forms System Core Github Pages
VAFSC will include but not limited to:
- Routing
- Save In Progress
- Web Components
- Accessibility
Prerequisites
- Nodejs/NPM
- run
nvm use
to install and use proper node version
- run
- Yarn
Quick start
Once you have the prerequisites downloaded you are ready to get the project built.
First you need to install all of the packages and their dependancies by running:
-
Install
yarn install
-
Build
yarn build
-
Watch
yarn watch
Examples
Run the examples in this repo with:
yarn serve-examples
To create new example:
- Make an entry file at
examples/my-new-example/index.jsx
- (Optional) Add a new bullet to the directory listing at
examples/index.jsx
to appear on the home page so other developers can quickly go to it
Documentation
We have documentation in /docs
that is hosted using GitHub Pages.
To update the document references run:
yarn build
To run the Jekyll site locally, run the following commands:
cd docs
bundle install
bundle exec jekyll serve
Continuous Integration
There are 3 github actions currently but more will be added in the future.
- codeql-analysis
- testing
- npm-publish
The design document
For more information about the purpose and architecture of this library, check out the design document.
The design document is intended to be a living document, so if you find it doesn't accurately reflect reality, please open an issue or submit a PR.