ReVAL (Reusable Validation & Aggregation Library) is a Django App for validating and aggregating data via API and web interface.
For the web interface, it can manage data submitted as file uploads to a central gathering point, and it can perform data validation, basic change tracking and duplicate file handling. Each file generally contains multiple data rows, and each user may submit multiple files.
For the API, it can perform data validation, and view uploads that were done via the web interface.
- Flexible input format
- Validation with:
- Row-by-row feedback on validation results
- Manage and track status of data submissions
- Re-submit previous submissions
- Flexible ultimate destination for data
- API for validation
- Python (3.5, 3.6)
- Django (1.11)
If you would like to use ReVAL in your Django project, install using
pipenv in your project...
<version>with the latest tag i.e.
- Replace with
masterif you would like to work with the latest development version
pipenv install -e git+https://github.com/18F/ReVAL.git@<version>#egg=data-ingest
'data_ingest' to your
INSTALLED_APPS = ( ... 'rest_framework', 'data_ingest', )
Please see default installation for more setup instructions.
Several examples are provided to demonstrate default and customized behavior of
Follow the development instructions to close this repository and install the dependencies required for the examples.
To perform data validation with API, see API documentation.
Deployment on Cloud.gov
See CONTRIBUTING for additional information.
To start developing on Django Data Ingest, clone the repository:
git clone email@example.com:18f/ReVAL.git
Install development dependencies:
pipenv install --dev
If you run into any issues installing packages in the
Pipfile, you can try to install the particular package individually again.
To execute the test suite, install the development dependencies and run:
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.