This is the public repo for the apps.gsa.gov proof of concept demo. The goal is to create an active marketplace that helps GSA employees evaluate and compare approved software products. Information on product's description and approval status are listed. Additionally, resources for staff to request products and how to get started requesting a product can be found.
This repo is open source, maintained by the Digital Service Team in the office of the CTO. If you have any questions regarding this repo or the content listed, please contact cto@gsa.gov.
TBD
-
Install Ruby on your system. This site requires version 2.2.4 or greater. You can see if a compatible version is already installed by running
ruby -vin a terminal window.You may wish to install a version manager such as rbenv to manage and install different Ruby versions.
-
Install Node.js on your system. This site requires version 4.2 or greater or version 5 or greater. You can see if a compatible version is already installed by running
node -vin a terminal window.You may wish to install a version manager such as nvm to manage and install different Node.js versions.
Why Node.js? It's used to build the lunr.js search index and search user interface components supplied by the
jekyll_pages_api_searchgem. We also use browserify and uglifyify to compile the customassets/js/products.jscode intojs/products-bundle.js, as specified in thejekyll_pages_api_search.browserifyproperty of_config.yml. -
Create a clone of this repository on your computer and change into its directory:
$ git clone https://github.com/GSA/apps-gsa-gov.git $ cd apps-gsa-gov -
Run
./go initto install the Ruby gems specified in theGemfileand the npm modules specified inpackage.json.The
./goscript is Bundler-aware, so you do not need to runbundle installfirst.Windows users: You may need to run the script as
ruby ./go initinstead, and run other./goscript commands in a similar fashion. -
Run
./go buildto build the site, and./go serveto build and serve the site locally at http://127.0.0.1:4000.These commands run
jekyll buildandjekyll serve, respectively. You can pass command line arguments as you would to those bare commands.Why not just run
bundle exec jekyll serve?./go initand./go serveperform the same environment setup asbundle exec, but the./goscript also sets theNODE_PATHenvironment variable to add thenode_modulesdirectory, so that the locally-installedbrowserifyanduglifyifymodules are discoverable.This is because
jekyll_pages_api_searchcontains components thatrequire()these modules, but these components reside in a directory this is neither a child nor a parent of the site. Consequently, the default Node.js module resolution algorithm will not discover the modules on its own.