We're so thankful you're considering contributing to an open source project of the U.S. government! If you're unsure about anything, just ask -- or submit the issue or pull request anyway. The worst that can happen is you'll be politely asked to change something. We appreciate all friendly contributions.
We encourage you to read this project's CONTRIBUTING policy (you are here), its LICENSE, and its README.
Entrypoints of code/isir-module.js
// Load all ISIR fields by section from an ISIR frame, performing validation
// isir_load_report(my_sample_isir_frame)
export function isir_load_report(isir_frame, opt) {}
// isir_section_report(section_student_identity, my_sample_isir_frame)
export function isir_section_report(section, isir_frame, opt={}) {}
// Load all ISIR fields into structured JSON from an ISIR frame, performing validation
// isir_load_json(my_sample_isir_frame)
export function isir_load_json(isir_frame, opt) {}
// isir_section_json(section_student_identity, my_sample_isir_frame)
export function isir_section_json(section, isir_frame, opt={}) {}
// Extract field value from ISIR frame using field validation
// isir_field_read(field_4, my_sample_isir_frame)
export function isir_field_read(field, isir_frame, mode) {}
// Validate value using field specific logic.
// isir_field_validate(field_4, 'My new Person UUID')
export function isir_field_validate(field, value, mode) {}
// Given an existing ISIR record frame,
// Update field value and return a new ISIR record frame
// isir_field_update(field_4, my_sample_isir_frame, 'My new Person UUID')
export function isir_field_update(field, isir_frame, value) {}
// Return a new blank ISIR frame using field definitions
// let my_new_isir = isir_blank()
export function isir_blank() {}
Using the sections and fields detailed in the 2024–25 Final ISIR Record Layout in Excel Format,
the JavaScript source of ./isir-module.js
is automatically generated for every field.
Each ISIR record field is specified by start postion, stop position, and length, as well as notes on how to interpret the data specific to each field.
Note that the specification uses a 1
-based position offset, whereas JavaScript uses a zero based index.
The ./isir-module.js
module is a copy of the generated JavaScript module from the Excel specification.
The module is then embedded in isir-viewer.html
and isir-from-spreadsheet.html
for reading and updating individual ISIR fields.
Using published Draft 2024-25 FAFSA Specifications Guide (February 2024 Update) specification, Volume 4 – Record Layouts and Processing Codes, 2024–25 Final ISIR Record Layout in Excel Format
This project sources dependencies directly from CDNs.
This project has no build or compilation steps.
We follow the GitHub Flow Workflow
- Fork the project
- Check out the
main
branch - Create a feature branch
- Write code and tests for your change
- From your branch, make a pull request against this repo.
- Work with repo maintainers to get your change reviewed
- Wait for your change to be pulled into this repo.
- Delete your feature branch
Refer to the Department of Education Vulnerability Disclosure Policy
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 or issue, you are agreeing to comply with this waiver of copyright interest.