82. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 12/20/2017 5:56:06 PM Eastern Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

82.1 Files compared

# Location File Last Modified
1 Genisis_2.0_v6_bld6.zip\Source Code\UI\Client README.md Thu Dec 14 19:55:53 2017 UTC
2 Genisis_2.0_v6_bld6.zip\Source Code\UI\Client README.md Wed Dec 20 21:15:12 2017 UTC

82.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 490
Changed 1 2
Inserted 0 0
Removed 0 0

82.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

82.4 Active regular expressions

No regular expressions were active.

82.5 Comparison detail

  1   # Setting  Up The Ser ver #
  2   This secti on will wa lk you thr ough how t o setup th e UI envir onment on  the server .
  3  
  4   ### Update  Yum
  5   `sudo yum  update`
  6  
  7   ### Instal l NodeJS
  8   `sudo curl  --silent  --location  https://r pm.nodesou rce.com/se tup_4.x |  bash -`
  9  
  10   If the RPM  install f ails you w ill have t o run it m anually. T he command  will be d isplayed o n the scre en and it  looks some thing like  this: `su do rpm -i  --nosignat ure --forc e '/tmp/tm p.TDULoz0M UE'`
  11  
  12   Now we hav e to insta ll the nod ejs that w e download ed: `sudo  yum -y ins tall nodej s`
  13  
  14   ### Instal l GIT
  15   `sudo yum  install gi t`
  16  
  17   ### Instal l NGINX
  18   `sudo yum  install ng inx.x86_64 `
  19  
  20   ### Clone  the Repo
  21   `PII`
  22  
  23   ### Instal l Grunt Co mmand Line  Globally  For Develo pment
  24   Run `sudo  npm instal l grunt@0. 4.5 -g`
  25  
  26   Run `sudo  npm instal l grunt-cl i -g`
  27  
  28   Test to ma ke sure gr unt is wor king by ty ping in `g runt --ver sion`
  29  
  30   ### Instal l the Proj ect for De ployment
  31   Run `npm r un build`  then copy  the conten ts of the  dist folde r to the w eb
  32   server's r oot www di rectory.
  33  
  34   ### Instal l the Proj ect For De velopment
  35   Clone the  repo then  run the fo llowing co mmand: `su do npm ins tall --dev `
  36  
  37   ### Build  the Projec t For Depl oyment
  38   Copy one o f the file s from the  env folde r into the  dist/js f older and
  39   rename it  env.js. Up date the c ontents of  the env.j s file to  match the  locations
  40   of the API  endpoint  and the lo cation of  the help f ile.
  41  
  42   ### Build  the Projec t For Deve lopment
  43   Clone the  repository  and run ` npm instal l --dev`.  When the i nstallatio n is
  44   complete y ou can bui ld the pro ject for a  specific  environmen t using th e
  45   following  commands.
  46  
  47   * Developm ent Sustai nment envi ronment: ` npm run de v-sustainm ent`
  48   * Developm ent Releas e environm ent: `npm  run dev-re lease`
  49   * Deployme nt to prod uction env ironment ( no dist/he lp/env.js  file): `np m run buil d`
  50  
  51   ### Genera te the dis t/help/env .js file
  52  
  53   Sometimes  you just w ant to gen erate the  environmen t configur ation file  without
  54   running gr unt or cre ating the  rest of th e files in  the dist  folder. Yo u can do
  55   this by ru nning the  following  command: ` npm run en vfile`
  56  
  57   ### Update  NGINX Roo t Director y
  58   `sudo vi / etc/nginx/ nginx.conf `
  59  
  60   Change the  line that  says root  to point  to `opt/ge nisis/dist `
  61  
  62   ### Start  NGINX
  63   `sudo serv ice nginx  start`
  64  
  65   # Developi ng Locally
  66   This secti on will go  over the  typical de velopment  process fo r setting  up and
  67   running th e UI proje ct on your  computer  locally.
  68  
  69   ### Softwa re Require ments
  70   In order t o develop  locally yo u must hav e Node v4. 5.0, GIT B ash, XAMPP  and an ID E.
  71   We also re commend us ing Consol e2 for mul ti window  and tabbed  viewing o f the MING W64
  72   console yo u will be  using.
  73  
  74   ### Instal l Node 4.5 .0
  75   A list of  all the do wnloads fo r this ver sion of no de are ava ilable her e: https:/ /nodejs.or g/download /release/v 4.5.0/
  76  
  77   Documentat ion for th is version  of node i s availabl e here: ht tps://node js.org/dow nload/rele ase/v4.5.0 /docs/api/
  78  
  79   ### Instal l GIT
  80   Download t he windows  version w hich inclu des MINGW6 4 Bash pro gram that  you will
  81   be using a s your con sole: http s://git-fo r-windows. github.io/
  82  
  83   ### Instal l Console  2
  84   It's *stro ngly recom mended* yo u install  and use Co nsole2, it  will make  developin g with
  85   the MINGW6 4 console  a lot easi er and les s annoying  than havi ng lots of  console
  86   windows al l over you r desktop.
  87  
  88   https://so urceforge. net/projec ts/console /
  89  
  90   ##### Conf iguration
  91   Once you h ave Consol e2 install ed you wan t to updat e it to us e the MING W64 bash p rovided
  92   when you d ownloaded  GIT.
  93  
  94   1. Open th e Console2  program.
  95   2. Go to E dit > Sett ings.
  96   3. In the  settings w indow loca te the She ll field
  97   4. Enter:  `C:\Window s\SysWOW64 \cmd.exe   /c ""C:\Us ers\{USERI D}\AppData \Local\Pro grams\Git\ bin\sh.exe " --login  -i"``
  98   5. Replace  {USERID}  with your  BAH 6 digi t ID numbe r (if you  don't know  it look f or the fol der in C:\ Users)
  99   6. In the  Startup Di rectory fi eld, enter : `C:\xamp p\htdocs\g enisis`
  100   7. Click O K at the b ottom of t he setting s window.
  101   8. Restart  Console2  once you h ave cloned  the genis is project  in the st ep below.
  102  
  103   ### Atom I DE Editor  ###
  104   It's *stro ngly recom mended* yo u use the  Atom IDE,  however yo u can use  whatever
  105   IDE you li ke the mos t. There a re several  great plu gins that  work well  with Atom
  106   and make i t easier t o catch er rors as yo ur program ming on th e project.
  107  
  108   You can do wnload Ato m here: ht tps://atom .io/
  109  
  110   ### Instal l Atom Plu gins
  111   These are  the recomm ended plug ins that y ou install  once you  have Atom.  To add a
  112   new plugin  first ope n Atom the n go to Fi le > Setti ngs. Find  the Instal l section
  113   at the bot tom of the  left hand  side of t he setting s menu and  click on  it. Enter
  114   the follow ing plugin s into the  package s earch box  and then h it install  when you
  115   find them:
  116  
  117   * atom-jas mine (by z acharytama s)
  118   * csslint  (by tcarls en)
  119   * grunt-ru nner (by k okarn)
  120   * linter ( by atom-co mmunity)
  121   * linter-c sslint (by  AtomLinte r)
  122   * linter-h tmlhint (b y AtomLint er)
  123   * linter-j shint (by  AtomLinter )
  124   * atom-wal laby (by w allabyjs)
  125  
  126   *Note:* at om-wallaby  requires  a separate  license p urchase, i t is
  127   not requir ed to get  the projec t working,  but it wi ll help wi th writing  unit test s
  128   and will n otify you  immediatel y if somet hing you d o has brok en a unit  test and i t
  129   can provid e code cov erage repo rts for yo ur unit te sts. Buy a  license h ere: https ://wallaby js.com/
  130  
  131   Once you a re done in stalling a ll of the  plugins yo u need to  restart At om for to  see
  132   some of th em in acti on. You ca n access a ll the plu gin comman ds by pres sing `Ctrl  + Shift +  P`
  133   and then s tarting to  type in t he name of  the plugi n. Try typ ing Grunt  or Wallaby .
  134  
  135   ### Instal l XAMPP
  136   This will  setup and  install an d allow yo u to easil y manage a  local Apa che server  that runs
  137   on your co mputer as  you develo p and test  the proje ct. Downlo ad it here : https:// www.apache friends.or g/download .html
  138  
  139   ## Downloa d the Sour ce Code
  140   Before you  can start  any local  developme nt you nee d to get a  copy of t he project
  141   source cod e.
  142  
  143   ### Create  an SSH Ke y
  144   You need a n SSH key  before you  can get a ccess to t he code re po. Open C onsole2 an d
  145   in the com mand line  type in th e followin g:
  146  
  147   `cd ~/.ssh /`
  148  
  149   This chang es you int o the SSH  directory.  Now you n eed to gen erate your  new SSH k ey.
  150   When it pr ompts you,  just keep  hitting e nter. Do n ot create  a password  and do no t
  151   change the  name of t he file it  wants to  generate.
  152  
  153   `ssh-keyge n`
  154  
  155   Now if you  display t he content s of your  .ssh folde r you will  see two n ew files,
  156   one called  id_rsa an d the othe r called i d_rsa.pub:
  157  
  158   `ls -la`
  159  
  160   ### Add SS H Key ###
  161   Now that y ou have an  id_rsa an d a .pub f ile you ne ed to add  this SSH k ey to the  repo.
  162   If you don 't have ac cess to th e SSP to c an request  it here u sing proje ct and tea m
  163   name Genis is20: http s://selfse rviceporta l.boozalle ncsn.com/a d
  164  
  165   If you alr eady have  access to  SSP then l ocate the  SSH Keys o n the left  hand side
  166   menu and e nter the c ontents of  your id_r sa.pub fil e into the  input fie ld and cli ck
  167   the add bu tton. You  can get th e contents  of your i d_rsa.pub  file by do ing the fo llowing:
  168  
  169   `cat ~/.ss h/id_rsa.p ub`
  170  
  171   Now you sh ould have  SSH access  to the re po. If you  want to s ee the fil es in the  repo on
  172   Github you  can click  on the Gi thub link  under the  Genisis2Cl ient proje ct in SSP.
  173  
  174   ### Clone  the Projec t ###
  175   Open Conso le2, you w ill see th e command  line for t he MINGW64  console i f you did
  176   the initia l setup co rrectly. I f you don' t refer ba ck to the  section ab ove.
  177  
  178   Change int o the XAMP P file sys tem locati on. This w ill allow  you to vie w your
  179   files and  changes wh en XAMPP i s running:
  180  
  181   `cd /c/xam pp/htdocs`
  182  
  183   Now clone  the projec t into a g enisis fol der like s o:
  184   `git clone  git@githu b.boozalle ncsn.com:H EALTH-ACCT -GROUP/Gen isis2Clien t.git geni sis`
  185  
  186   ## Setup t he Project
  187   This secti on will sh ow you how  to get th e project  setup once  you've se tup all of
  188   your softw are and ha ve cloned  the projec t.
  189  
  190   ### Instal l NPM depe ndencies P roject ###
  191   Now that y ou've clon ed the pro ject you h ave to dow nload all  the depend encies and
  192   generate t he `dist`  folder. In  Console2  type the f ollowing:
  193  
  194   `cd /c/xam pp/htdocs/ genisis`
  195  
  196   This place s you into  the genis is folder  where you  cloned the  project.  Now you
  197   install an d build:
  198  
  199   `npm insta ll && grun t build`
  200  
  201   This insta lls all th e NPM depe ndencies a nd then do es the ini tial build  of the pr oject.
  202   You should  now see a  new dist  folder has  appeared.  This is t he folder  that conta ins the
  203   deployable  version o f the proj ect.
  204  
  205   ### Start  XAMPP Apac he Server  ###
  206   Open the X AMPP execu table prog ram. You w ill see th e XAMPP co ntrol pane l. Click o n
  207   the start  button for  the APACH E web serv er.
  208  
  209   ### View P roject In  Browser ## #
  210   Once the X AMPP Apach e server i s running  and you've  initializ e and buil t the proj ect
  211   you can vi ew the pro ject in yo ur browser  by going  to the dis t file tha t was gene rated:
  212  
  213   http://loc alhost/dis t
  214  
  215   *Note:* If  you're us ing an IDE  like Atom  or Sublim e you will  not see t he dist fo lder in yo ur file
  216   tree becau se it is l isted in t he .gitign ore config uration an d by defau lt these I DEs
  217   remove tho se files f rom your f ile tree,  however th e file is  there and  available  if you
  218   navigate t o it
  219  
  220   # Typical  Daily Deve lopment Pr ocess #
  221  
  222   1. Start A pache on X AMPP
  223   2. Open Co nsole2 and  go into y our genisi s director y: `cd /c/ xampp/htdo cs/genisis `
  224   3. Run the  developme nt environ ment and s tart grunt : `npm run  watch`
  225   4. Make ch anges to t he code in  the `src`  folder
  226   5. Check t he console  output re sults from  grunt wat ch (or IDE  plugin) f or any err ors
  227   6. Fix any  errors or  breaking  unit tests
  228   7. Test yo ur changes  in the br owser when  the tests  run clean  by going  to: http:/ /localhost /dist
  229  
  230   # Testing  API - Post man Tests  #
  231  
  232   If you wou ld like to  run some  simple API  tests tha t were dev eloped in  Postman
  233   you can en ter the fo llowing co mmand from  the root  directory:  `newman r un postman _tests.jso n`
  234   For the fu ll list of  Newman op tions you  can consul t the docu mentation  here: http s://github .com/postm anlabs/new man
  235  
  236   ### Genera ting Postm an HTML Ou tput ###
  237  
  238   If you wou ld like to  see HTML  version of  the Newma n output y ou can run  the follo wing and
  239   a new fold er called  Newman wil l be creat ed with th e results  of your te st runs:
  240   `newman ru n postman_ tests.json  --reporte rs html`
  241  
  242   ### Genera ting Postm an CLI Out put ###
  243  
  244   If you wan t to get r esults fro m the post man test t o see in t he command  line if t he
  245   tests have  succeeded  or failed  you can r un the fol lowing: `n ewman run  postman_te sts.json - -reporter- cli-no-sum mary --rep orter-cli- no-console  --reporte r-cli-no-a ssertions`
  246   happy codi ng