Name: gibct-data-service
Owner: Department of Veterans Affairs
Description: Allows stakeholders to build a valid GIBCT database from various data sources and apis.
Created: 2016-02-24 00:24:29.0
Updated: 2018-05-23 22:21:02.0
Pushed: 2018-05-24 13:40:07.0
Homepage: null
Size: 78566
Language: Ruby
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
The GIBCT Data Service (GIDS) compiles data from a variety of federal CSV-formatted sources into a set of institution profiles that provide school metrics of value to veterans. It also offers a query-based institution search mechanism, houses GI Bill education benefit parameters, and serves as a repository for the federal CSV source files. Secondarily, institution information may be exported as a CSV for regulatory reporting purposes.
GIDS data is accessible via an API intended for use by the GI Bill Comparison Tool client (GIBCT), which is part of
the vets-api
and vets-website
applications.
GIDS profile data is logically partitioned in two modes: preview mode and production mode. In preview mode the data retrieved via the API has not yet been approved by the VA Education Stakeholders. In contrast, production mode is the actual data pushed to GIBCT for public consumption.
Institution profile data is synthesized from 21 separate CSVs maintained by various federal sources. Once the CSVs are
uploaded, a preview
version can be compiled. The data for the preview
version can then be viewed by using the GIBCT
in the link provided on the GIDS dashboard. Once the new preview version is “approved” it can then be pushed to
production
.
Note that queries are PostgreSQL-specific.
gem install bundler
and bundle install
npm install -g phantomjs
is necessary for running certain tests.bundle exec rake lint
- Run the full suite of linters on the codebase.bundle exec guard
- Runs the guard test server that reruns your tests after files are saved. Useful for TDD!bundle exec rake security
- Run the suite of security scanners on the codebase.bundle exec rake ci
- Run all build steps performed in Travis CI.The following environment variables need to be configured for GIDS:
GIBCT_URL
: this a link to the GIBCT that is used for looking at the data served by GIDS, and should
point to an instance of the GIBCT running locally. You are not required to have an instance of GIBCT
to work on GIDS unless you wish to view the data in the client for which this service is intended. To learn
more, please refer to the vets-api repo and
vets-website repo where the GIBCT backend and
client application, respectively, are located.ADMIN_EMAIL
: This is the email you will use to sign onto GIDS.ADMIN_PW
: This is the password for the email (above) you will use.LINK_HOST
: This will be http://localhost:3000
To create these variables, you will need to create an application.yml
file under /config. An example is posted below:
N_EMAIL: 'something...'
N_PW: 'something...'
ET_KEY_BASE: 'something ...'
_HOST: 'http://localhost:3000'
T_URL: 'http://localhost:3002/gi-bill-comparison-tool'
You can create additional users by adding them to the /db/seeds/01_users.rb
file:
.create(email: 'xxxxxx', password: 'xxxxxx')
bundle install
to set up the application.bundle exec rake db:create
.bundle exec rake db:migrate
.bundle exec rake db:seed
bundle exec rails s
There are many ways to contribute to this project:
Bugs
If you spot a bug, let us know! File a GitHub Issue for this project. When filing an issue add the following:
bug
Code Submissions
This project logs all work needed and work being actively worked on via GitHub Issues. Submissions related to these are especially appreciated, but patches and additions outside of these are also great.
If you are working on something related to an existing GitHub Issue that already has an assignee, talk with them first (we don't want to waste your time). If there is no assignee, assign yourself (if you have permissions) or post a comment stating that you're working on it.
To work on your code submission, follow GitHub Flow:
If you're from the community, it may take one to two weeks to review your pull request. Teams work in one to two week sprints, so they need time to need add it to their time line.
Deployment is handled the same way as vets-api
, commits to master are tested by Jenkins and a deploy is kicked off (to change the branches, edit the Jenkinsfile) to dev and staging. Production releases are manually gated. Navigate to http://jenkins.vetsgov-internal/job/releases/job/gi-bill-data-service/ and kick off a release job with the git sha for the release and it will automatically deploy to production.
The production
branch is kept around for references to older deployments, but is no longer in use by the deployment systems.
If you have a question or comment about this project, file a GitHub Issue with your question in the Title, any context in the Comment, and add the question
Label. For general questions, tag or assign to the product owner Marc Harbatkin (GitHub Handle: mphprogrammer). For design questions, tag or assign to the design lead, Marc Harbatkin (GitHub Handle: mphprogrammer). For technical questions, tag or assign to the engineering lead, Marc Harbatkin (GitHub Handle: mphprogrammer).