├── .gitattributes
├── .github
└── workflows
│ ├── stale.yml
│ └── test.yml
├── .gitignore
├── .travis.yml
├── AR
├── HIRO.jpg
├── README.md
├── crosshair.png
├── css
│ └── stylesheet.css
├── favicon-192.png
├── footer
│ ├── OIT-footer.css
│ ├── OIT-footer.html
│ ├── OIT-footer.js
│ └── img
│ │ ├── png
│ │ ├── facebook25.png
│ │ ├── flickr.png
│ │ ├── github32.png
│ │ ├── rss25.png
│ │ ├── twitter16.png
│ │ └── youtube15.png
│ │ └── svg
│ │ ├── facebook25.svg
│ │ ├── flickr.svg
│ │ ├── rss25.svg
│ │ ├── twitter16.svg
│ │ └── youtube15.svg
├── index.html
└── js
│ ├── notebook.js
│ └── setup.js
├── NASA-M-16-21-Framework.pdf
├── NASA-M-16-21-OCIO-Memo.pdf
├── README.md
├── app.yaml
├── bower.json
├── cron_scripts
├── code_to_catalog.py
└── release.sh
├── data
├── SRA.json
├── catalog.json
├── deprecated
│ ├── SRA_old.json
│ ├── catalog.json
│ ├── catalog.json-save
│ ├── catalog_old.json
│ ├── catalog_old_2.json
│ ├── catalog_original_no_nlp_20190326.json
│ ├── code-pre_aug_2017.json
│ ├── code-v1.0.1.json
│ ├── code.json
│ ├── code_original_use.json
│ ├── new-code.json
│ └── test
│ │ ├── code-nasa-app.html
│ │ └── index.html
└── license_mappings.json
├── fonts
├── ArcaMajora3-Bold.woff
├── ArcaMajora3-Bold.woff2
├── ArcaMajora3-Heavy.woff
└── ArcaMajora3-Heavy.woff2
├── images
├── backgrounds
│ ├── guide.jpg
│ ├── projects-bottom.jpg
│ ├── projects.jpg
│ └── share.jpg
├── favicon.ico
├── guide-steps
│ ├── 1.png
│ ├── 10.png
│ ├── 11.png
│ ├── 12.png
│ ├── 13.png
│ ├── 14.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
│ ├── 8.png
│ └── 9.png
└── logos
│ ├── nasa-144.png
│ ├── nasa-192.png
│ ├── nasa-48.png
│ ├── nasa-512.png
│ ├── nasa-72.png
│ └── nasa-96.png
├── index.html
├── manifest.json
├── package-lock.json
├── package.json
├── polymer.json
├── service-worker.js
├── src
├── assets
│ └── css
│ │ └── material-kit.css
├── code-nasa-app.html
├── code-nasa-experiments.html
├── code-nasa-guide.html
├── code-nasa-invalid.html
├── code-nasa-projects.html
├── code-nasa-related.html
├── code-nasa-share.html
├── code-nasa-tagcluster.html
├── images
│ ├── backgrounds
│ │ ├── guide.jpg
│ │ ├── projects-bottom.jpg
│ │ ├── projects.jpg
│ │ └── share.jpg
│ ├── down-arrow.svg
│ ├── downloadSince.png
│ ├── favicon.ico
│ ├── forc.png
│ ├── fork.jpg
│ ├── laborHours.png
│ ├── logos
│ │ ├── nasa-144.png
│ │ ├── nasa-192.png
│ │ ├── nasa-48.png
│ │ ├── nasa-512.png
│ │ ├── nasa-72.png
│ │ └── nasa-96.png
│ ├── obs.png
│ ├── popular_code.png
│ └── tag_bubble.png
├── observablecode-import.html
└── shared-styles.html
├── sw-precache-config.js
├── yarn-error.log
└── yarn.lock
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | name: Mark stale issues and pull requests
2 |
3 | on:
4 | schedule:
5 | - cron: "0 0 * * *"
6 |
7 | jobs:
8 | stale:
9 |
10 | runs-on: ubuntu-latest
11 |
12 | steps:
13 | - uses: actions/stale@v1
14 | with:
15 | repo-token: ${{ secrets.GITHUB_TOKEN }}
16 | stale-issue-message: 'Stale issue message'
17 | stale-pr-message: 'Stale pull request message'
18 | stale-issue-label: 'no-issue-activity'
19 | stale-pr-label: 'no-pr-activity'
20 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | # This is a basic workflow to help you get started with Actions
2 |
3 | name: CI
4 |
5 | # Controls when the action will run. Triggers the workflow on push or pull request
6 | # events but only for the master branch
7 | on:
8 | push:
9 | branches: [ master ]
10 | pull_request:
11 | branches: [ master ]
12 |
13 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
14 | jobs:
15 | # This workflow contains a single job called "build"
16 | build:
17 | # The type of runner that the job will run on
18 | runs-on: ubuntu-latest
19 |
20 | # Steps represent a sequence of tasks that will be executed as part of the job
21 | steps:
22 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
23 | - uses: actions/checkout@v2
24 |
25 | # Runs a single command using the runners shell
26 | - name: Run a one-line script
27 | run: echo Hello, world!
28 |
29 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | bower_components/
2 | build/
3 | node_modules/
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | sudo: required
3 | dist: trusty
4 | addons:
5 | firefox: '46.0'
6 | apt:
7 | sources:
8 | - google-chrome
9 | packages:
10 | - google-chrome-stable
11 | node_js:
12 | - '8'
13 | - '10'
14 | before_script:
15 | - npm install -g bower polymer-cli
16 | - bower install
17 | script:
18 | - xvfb-run polymer test
19 |
--------------------------------------------------------------------------------
/AR/HIRO.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/HIRO.jpg
--------------------------------------------------------------------------------
/AR/README.md:
--------------------------------------------------------------------------------
1 | # STI-Tagger-AR-Viz
2 | ## AR visualization of the D3 Graph currently in the code.nasa.gov/Experiments Page
3 | ### How to use:
4 | 1. Print the HIRO.jpg in the main directory or dowload it onto a seperate device that can be looked at by your devices Camera
5 | 2. Go to https://developer.nasa.gov/pages/OpenInnovation/STI-Tagger-AR-Viz/ . It will ask to access you camera, please allow it.
6 | 3. Point your camera at the picture you printed or downloaded and the visialization will render on top of it.
7 | 4. Click or tap on your screen and the sphere highlighted Blue will open a detailed data description.
8 | ### How to use: UI Guide
9 | * This build was developed with users mostly using mobile devices, therefore there is a black crosshair(+) in the middle of the screen. Said crosshair is what selects the object, therefore clicking or tapping anywhere on the screen will trigger the crosshair, not where has been clicked.
10 | * The sliders at the bottom adjust the minimum and the maximum tag count displayed. For example, if the minimum is set to "10", then the graph will show me tag spheres that had been generated at least 10 times.
11 | * When you click/tap to select a sphere, a popup will show up from the bottom of the screen with various related data. If you wish to leave this screen, click/tap the button in the lower right corner.
12 | * The button in the top right corner opens a Sub Cluster Menu, which lets you narrow down the visualization to five tags + similar tags. The box right under the selector displays links connected with the Sub Cluster
13 |
--------------------------------------------------------------------------------
/AR/crosshair.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/crosshair.png
--------------------------------------------------------------------------------
/AR/css/stylesheet.css:
--------------------------------------------------------------------------------
1 | * {
2 | -webkit-box-sizing: border-box;
3 | -moz-box-sizing: border-box;
4 | box-sizing: border-box;
5 | }
6 |
7 | main{
8 | cursor: none !important;
9 | overflow: hidden !important;
10 | }
11 |
12 | p{
13 | font-size: 12px;
14 | overflow:auto;
15 | }
16 |
17 | a:-webkit-any-link {
18 | color: #9bdaf1;
19 | cursor: pointer;
20 | text-decoration: none;
21 | }
22 | a:link {
23 | color: #9bdaf1;
24 | cursor: pointer;
25 | text-decoration: none;
26 | }
27 |
28 | select{
29 | overflow-x: auto;
30 | max-width: 100%;
31 | max-height: 39%;
32 | }
33 | section{
34 | max-width: 100%;
35 | max-height: 45%;
36 | }
37 |
38 | header{
39 | position: fixed;
40 | left: 0;
41 | right: 0;
42 | top: 0;
43 | width: 100%;
44 | height: 10%;
45 | z-index: 10000;
46 | background: #323a45;
47 | color: #9bdaf1;
48 | padding: 1%;
49 | }
50 | footer{
51 | position: fixed;
52 | left: 0;
53 | right: 0;
54 | bottom: 0;
55 | width: 100%;
56 | height: 8%;
57 | background: #323a45;
58 | color: white;
59 | padding: 1rem;
60 | }
61 |
62 | #tutorial{
63 | position: absolute;
64 | left: 0;
65 | top: 0;
66 | width: 100%;
67 | height: 100%;
68 | text-align: center;
69 | padding-top: 37%;
70 | font-size: 20px;
71 | background: white;
72 | z-index: 1000;
73 | -webkit-transition: 2s ease;
74 | -moz-transition: 2s ease;
75 | -ms-transition: 2s ease;
76 | -o-transition: 2s ease;
77 | transition: 2s ease;
78 | opacity: 1;
79 | }
80 | #tutorial.instructions{
81 | -webkit-transition: 2s ease;
82 | -moz-transition: 2s ease;
83 | -ms-transition: 2s ease;
84 | -o-transition: 2s ease;
85 | transition: 2s ease;
86 | opacity: .5;
87 | }
88 | #tutorial.instructions.visible{
89 | -webkit-transition: 2s ease;
90 | -moz-transition: 2s ease;
91 | -ms-transition: 2s ease;
92 | -o-transition: 2s ease;
93 | transition: 2s ease;
94 | transform: translate(0, 100%);
95 | }
96 |
97 | #footerDiv{
98 | position: fixed;
99 | right: 0;
100 | bottom: 8%;
101 | width: 100%;
102 | height: 48%;
103 | background: #323a45;
104 | color: white;
105 | padding: 1rem;
106 | border: .2rem solid white;
107 | z-index: 9000;
108 | -webkit-transition: 1s ease;
109 | -moz-transition: 1s ease;
110 | -ms-transition: 1s ease;
111 | -o-transition: 1s ease;
112 | transition: 1s ease;
113 | transform: translate(0, 117%);
114 | }
115 |
116 | #footerDiv.visible{
117 | -webkit-transition: 1s ease;
118 | -moz-transition: 1s ease;
119 | -ms-transition: 1s ease;
120 | -o-transition: 1s ease;
121 | transition: 1s ease;
122 | transform: translate(0, 0%);
123 | }
124 | main{
125 | -webkit-transition: 1s ease;
126 | -moz-transition: 1s ease;
127 | -ms-transition: 1s ease;
128 | -o-transition: 1s ease;
129 | transition: 1s ease;
130 | transform: translate(0, 0%);
131 | }
132 |
133 | main.visible{
134 | -webkit-transition: 1s ease;
135 | -moz-transition: 1s ease;
136 | -ms-transition: 1s ease;
137 | -o-transition: 1s ease;
138 | transition: 1s ease;
139 | transform: translate(0, -26%);
140 | }
141 |
142 | .submenuButton{
143 | background: white;
144 | float: right;
145 | margin: .5rem;
146 | font-size: 29px;
147 | height: 77%;
148 | width: 9%;
149 | }
150 |
151 | .logo{
152 | max-width: 10%;
153 | float: left;
154 | }
155 | .title{
156 | float: left;
157 | margin-top: .5rem;
158 | font-size: 50px;
159 | }
160 | .mobileCH{
161 | display: block;
162 | margin: 0;
163 | position: absolute;
164 | top: 50%;
165 | left: 50%;
166 | width: 1rem;
167 | }
168 |
169 | .dropdown{
170 | position: fixed;
171 | right: 0;
172 | top: 10%;
173 | width: 100%;
174 | height: 82%;
175 | color: white;
176 | padding: 1rem;
177 | border: .2rem solid white;
178 | z-index: -1;
179 | -webkit-transition: 1s ease;
180 | -moz-transition: 1s ease;
181 | -ms-transition: 1s ease;
182 | -o-transition: 1s ease;
183 | transition: 1s ease;
184 | transform: translate(100%, 0);
185 | }
186 | .dropdown:after{
187 | position: fixed;
188 | right: 0;
189 | top: 0;
190 | width: 100%;
191 | height: 100%;
192 | content: '';
193 | opacity: .7;
194 | z-index: -1;
195 | background: #323a45;
196 | }
197 | .dropdown.visible{
198 | -webkit-transition: 1s ease;
199 | -moz-transition: 1s ease;
200 | -ms-transition: 1s ease;
201 | -o-transition: 1s ease;
202 | transition: 1s ease;
203 | transform: translate(0, 0);
204 | }
205 |
206 | #buttonSlider{
207 | position: absolute;
208 | bottom: .5rem;
209 | right: 0;
210 | }
211 |
212 | .textDesc{
213 | display: block;
214 | }
215 |
216 | #Projects{
217 | height: 41%;
218 | }
219 | #Projects a:link{
220 | color: white !important;
221 | }
222 | #Projects a:-webkit-any-link {
223 | color: white !important;
224 | }
225 | #TagName a:link{
226 | color: white !important;
227 | }
228 | #TagName a:-webkit-any-link {
229 | color: white !important;
230 | }
231 |
232 | /*IPhone X landscape*/
233 | @media screen and (min-width: 811px) and (max-height: 566px){
234 | footer{
235 | padding: .5rem;
236 | }
237 | .logo{
238 | max-width: 5%;
239 | }
240 | .title{
241 | font-size: 16px;
242 | margin-top: 3px;
243 | }
244 | #footerDiv{
245 | width: 40%;
246 | height: 82%;
247 | }
248 | main.visible{
249 | transform: translate(-19%, 0);
250 | }
251 | .textDesc{
252 | display: none;
253 | }
254 | .sliderBottom{
255 | position: absolute;
256 | left: 40%;
257 | top: .5rem;
258 | }
259 | #sliders div{
260 | float: none !important;
261 | }
262 | .submenuButton{
263 | margin: .2rem;
264 | font-size: 10px;
265 | height: 77%;
266 | }
267 | }
268 |
269 | /*IPhone 7 plus landscape*/
270 | @media screen and (min-width: 735px) and (max-width: 810px) and (max-height: 566px){
271 | footer{
272 | padding: .5rem;
273 | }
274 | .logo{
275 | max-width: 5%;
276 | }
277 | .title{
278 | font-size: 16px;
279 | margin-top: 5px;
280 | }
281 | #footerDiv{
282 | width: 40%;
283 | height: 82%;
284 | }
285 | #Projects{
286 | height: 46%;
287 | }
288 |
289 | main.visible{
290 | transform: translate(-19%, 0);
291 | }
292 | .textDesc{
293 | display: none;
294 | }
295 | .sliderBottom{
296 | position: absolute;
297 | left: 40%;
298 | top: .5rem;
299 | }
300 | #sliders div{
301 | float: none !important;
302 | }
303 | .submenuButton{
304 | margin: .2rem;
305 | font-size: 10px;
306 | height: 77%;
307 | }
308 | }
309 |
310 | /*IPhone 7 landscape*/
311 | @media screen and (min-width: 666px) and (max-width: 734px) and (max-height: 566px){
312 | footer{
313 | padding: .5rem;
314 | }
315 | .logo{
316 | max-width: 5%;
317 | }
318 | .title{
319 | font-size: 16px;
320 | margin-top: 4px;
321 | }
322 | #footerDiv{
323 | width: 40%;
324 | height: 82%;
325 | }
326 | main.visible{
327 | transform: translate(-19%, 0);
328 | }
329 | .textDesc{
330 | display: none;
331 | }
332 | .sliderBottom{
333 | position: absolute;
334 | left: 40%;
335 | top: .5rem;
336 | }
337 | #sliders div{
338 | float: none !important;
339 | }
340 | .submenuButton{
341 | margin: .2rem;
342 | font-size: 10px;
343 | height: 77%;
344 | }
345 | }
346 |
347 | /*IPhone 5 landscape*/
348 | @media screen and (min-width: 567px) and (max-width: 665px) and (max-height: 566px){
349 | footer{
350 | padding: .5rem;
351 | }
352 | .logo{
353 | max-width: 5%;
354 | }
355 | .title{
356 | font-size: 16px;
357 | margin-top: 2px;
358 | }
359 | #footerDiv{
360 | width: 40%;
361 | height: 82%;
362 | }
363 | #Projects{
364 | height: 29%;
365 | }
366 | main.visible{
367 | transform: translate(-19%, 0);
368 | }
369 | .textDesc{
370 | display: none;
371 | }
372 | .sliderBottom{
373 | position: absolute;
374 | left: 40%;
375 | top: .5rem;
376 | }
377 | #sliders div{
378 | float: none !important;
379 | }
380 | .submenuButton{
381 | margin: .2rem;
382 | font-size: 10px;
383 | height: 77%;
384 | }
385 | }
386 |
387 | /*IPhone X portrait*/
388 | @media screen and (min-height: 811px) and (max-width: 566px){
389 | .logo{
390 | max-width: 21%;
391 | }
392 | .title{
393 | font-size: 19px;
394 | }
395 | footer{
396 | height: 14%;
397 | }
398 | #footerDiv{
399 | bottom: 14%;
400 | transform: translate(0, 129%);
401 | }
402 | #Projects{
403 | height: 53%;
404 | }
405 | main.visible{
406 | transform: translate(0, -26%);
407 | }
408 | .submenuButton{
409 | margin: .9rem;
410 | font-size: 22px;
411 | height: 58%;
412 | }
413 | .dropdown{
414 | height: 76%;
415 | }
416 | }
417 |
418 | /*IPhone 7 plus portrait*/
419 | @media screen and (min-height: 735px) and (max-height: 810px) and (max-width: 566px){
420 | .logo{
421 | max-width: 17%;
422 | }
423 | .title{
424 | font-size: 23px;
425 | }
426 | footer{
427 | height: 15%;
428 | }
429 | #footerDiv{
430 | bottom: 15%;
431 | transform: translate(0, 132%);
432 | }
433 | #Projects{
434 | height: 48%;
435 | }
436 | main.visible{
437 | transform: translate(0, -28%);
438 | }
439 | .submenuButton{
440 | margin: .8rem;
441 | font-size: 22px;
442 | height: 58%;
443 | }
444 | .dropdown{
445 | height: 75%;
446 | }
447 | }
448 |
449 | /*IPhone 7 portrait*/
450 | @media screen and (min-height: 666px) and (max-height: 734px) and (max-width: 566px){
451 | .logo{
452 | max-width: 17%;
453 | }
454 | .title{
455 | font-size: 21px;
456 | }
457 | footer{
458 | height: 17%;
459 | }
460 | #footerDiv{
461 | bottom: 17%;
462 | transform: translate(0, 136%);
463 | }
464 | #Projects{
465 | height: 43%;
466 | }
467 | main.visible{
468 | transform: translate(0, -28%);
469 | }
470 | .submenuButton{
471 | margin: .7rem;
472 | font-size: 20px;
473 | height: 58%;
474 | }
475 | .dropdown{
476 | height: 73%;
477 | }
478 | }
479 |
480 | /*IPhone 5 portrait*/
481 | @media screen and (min-height: 567px) and (max-height: 665px) and (max-width: 566px){
482 | .logo{
483 | max-width: 17%;
484 | }
485 | .title{
486 | font-size: 17px;
487 | }
488 | footer{
489 | height: 18%;
490 | padding: .5rem;
491 | }
492 | #footerDiv{
493 | bottom: 18%;
494 | transform: translate(0, 138%);
495 | }
496 | #Projects{
497 | height: 32%;
498 | }
499 | main.visible{
500 | transform: translate(0, -27%);
501 | }
502 | .submenuButton{
503 | margin: .9rem;
504 | font-size: 15px;
505 | height: 58%;
506 | }
507 | .dropdown{
508 | height: 72%;
509 | }
510 | }
511 |
--------------------------------------------------------------------------------
/AR/favicon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/favicon-192.png
--------------------------------------------------------------------------------
/AR/footer/OIT-footer.css:
--------------------------------------------------------------------------------
1 | html{
2 | font-size: 10px;
3 | }
4 |
5 |
6 | footer {
7 | font-family: sans-serif;
8 | -ms-text-size-adjust: 100%;
9 | -webkit-text-size-adjust: 100%;
10 | display: block;
11 | margin: 0;
12 | font-size: 1.5rem;
13 | background-color: #ffffff;
14 | color: #212121;
15 | overflow-x: hidden;
16 | }
17 |
18 | .footer,
19 | .footer::before,
20 | .footer::after {
21 | box-sizing: border-box;
22 | }
23 |
24 |
25 |
26 | .oit-social_link, .oit-link-facebook, .oit-link-twitter, .oit-link-youtube, .oit-link-rss, .oit-link-github{
27 | margin: 2.5rem 1rem 1.5rem 0;
28 | background-position: center center;
29 | background-repeat: no-repeat;
30 | background-size: auto 2rem;
31 | display: inline-block;
32 | height: 2.5rem;
33 | left: 0;
34 | position: relative;
35 | text-align: center;
36 | width: 2.5rem;
37 | }
38 |
39 | @media screen and (min-width: 707px) {
40 | .oit-social_link, .oit-link-facebook, .oit-link-twitter, .oit-link-youtube, .oit-link-rss, .oit-link-github {
41 | margin: 0 0 0 0.5rem;
42 | }
43 | }
44 |
45 | .oit-social_link span, .oit-link-facebook span, .oit-link-twitter span, .oit-link-youtube span, .oit-link-rss span, .oit-link-github span{
46 | position: absolute;
47 | left: -999em;
48 | }
49 |
50 | .oit-link-facebook {
51 | background-image: url("../footer/img/png/facebook25.png");
52 | background-image: url("../footer/img/svg/facebook25.svg");
53 | }
54 |
55 | .oit-link-twitter {
56 | background-image: url("../footer/img/png/twitter16.png");
57 | background-image: url("../footer/img/svg/twitter16.svg");
58 | }
59 |
60 | .oit-link-youtube {
61 | background-image: url("../footer/img/png/youtube15.png");
62 | background-image: url("../footer/img/svg/youtube15.svg");
63 | }
64 |
65 | .oit-link-rss {
66 | background-image: url("../footer/img/png/rss25.png");
67 | background-image: url("../footer/img/svg/rss25.svg");
68 | }
69 |
70 | .oit-link-github {
71 | background-image: url("../footer/img/png/github32.png");
72 | }
73 |
74 | .oit-special{
75 | margin-left: 0px !important;
76 | }
77 |
78 |
79 | .oit-unstyled-list {
80 | margin-top: 0;
81 | margin-bottom: 0;
82 | list-style-type: none;
83 | padding-left: 0;
84 | }
85 |
86 | .oit-unstyled-list > li {
87 | margin-bottom: 0;
88 | }
89 | .oit-footer .oit-unstyled-list {
90 | display: block;
91 | }
92 |
93 | .oit-footer .oit-footer-primary-link{
94 | display: block;
95 | font-weight: 700;
96 | margin-top: 0;
97 | text-align: center;
98 | }
99 | .oit-footer-primary-link a{
100 | color: #212121;
101 | text-decoration: none;
102 | }
103 |
104 | @media screen and (min-width: 707px) {
105 | .oit-footer .oit-footer-primary-link {
106 | border-top: none;
107 | }
108 | .oit-special{
109 | margin-left: 80px;
110 | }
111 | }
112 |
113 | .oit-footer-primary-link a:hover {
114 | cursor: pointer;
115 | text-decoration: underline;
116 | }
117 |
118 | @media screen and (min-width: 707px) {
119 | .oit-footer-primary-link a:hover {
120 | cursor: pointer;
121 | text-decoration: underline;
122 | }
123 | }
124 |
125 | .oit-footer .oit-footer-primary-link ~ li a,
126 | .oit-footer .oit-footer-secondary-link {
127 | text-decoration: none;
128 | }
129 |
130 | .oit-footer-contact_info {
131 | display: inline-block;
132 | font-style: normal;
133 | line-height: 1.5;
134 | }
135 |
136 | .oit-footer-contact_info a {
137 | color: #212121;
138 | text-decoration: none;
139 | }
140 |
141 | .oit-footer-contact_info:hover {
142 | text-decoration: underline;
143 | }
144 |
145 | .oit-footer-return-to-top {
146 | padding-bottom: 2rem;
147 | padding-top: 2rem;
148 | }
149 |
150 | .oit-footer-primary-section {
151 | background-color: #f1f1f1;
152 | }
153 |
154 | .oit-footer-primary-section .oit-footer-primary-content {
155 | padding-bottom: 2rem;
156 | padding-top: 2rem;
157 | }
158 |
159 | .oit-footer-primary-section .oit-footer-primary-content li {
160 | margin-left: 1rem;
161 | }
162 |
163 | @media screen and (min-width: 707px) {
164 | .oit-footer-primary-section .oit-footer-primary-content li {
165 | margin-left: 0;
166 | }
167 | }
168 |
169 | .oit-footer-medium .oit-footer-contact_info p {
170 | margin: 0 1rem 0 0;
171 | }
172 |
173 | @media screen and (min-width: 707px) {
174 | .oit-footer-medium .oit-footer-contact_info p {
175 | margin: 0 0 0 1rem;
176 | }
177 | }
178 |
179 | .oit-footer-medium .oit-footer-contact-heading {
180 | margin-top: 0;
181 | clear: both;
182 | -moz-osx-font-smoothing: grayscale;
183 | -webkit-font-smoothing: antialiased;
184 | font-family: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
185 | line-height: 1.2;
186 | margin-bottom: 0.5em;
187 | font-size: 1.8rem;
188 | font-weight: 700;
189 | }
190 |
191 | @media screen and (min-width: 707px) {
192 | .oit-footer-medium .oit-footer-contact-heading {
193 | margin-top: 0.5rem;
194 | margin-bottom: 0.5rem;
195 | clear: both;
196 | -moz-osx-font-smoothing: grayscale;
197 | -webkit-font-smoothing: antialiased;
198 | font-family: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
199 | line-height: 1.2;
200 | font-size: 1.8rem;
201 | font-weight: 700;
202 | }
203 | }
204 |
205 |
206 | .oit-footer-logo-img {
207 | max-width: 5.5rem;
208 | }
209 |
210 | @media screen and (min-width: 707px) {
211 | .oit-footer-logo-img {
212 | float: left;
213 | max-width: 8rem;
214 | }
215 | }
216 |
217 | .oit-footer-logo-heading {
218 | display: block;
219 | margin-top: 1rem;
220 | clear: both;
221 | -moz-osx-font-smoothing: grayscale;
222 | -webkit-font-smoothing: antialiased;
223 | font-family: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
224 | line-height: 1.2;
225 | margin-bottom: 0.5em;
226 | font-size: 1.8rem;
227 | font-weight: 700;
228 | }
229 |
230 | @media screen and (min-width: 707px) {
231 | .oit-footer-logo-heading {
232 | display: inline-block;
233 | margin-top: 3rem;
234 | padding-left: 1.5rem;
235 | clear: both;
236 | -moz-osx-font-smoothing: grayscale;
237 | -webkit-font-smoothing: antialiased;
238 | font-family: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
239 | line-height: 1.2;
240 | margin-bottom: 0.5em;
241 | font-size: 1.8rem;
242 | font-weight: 700;
243 | }
244 | }
245 |
246 | .oit-footer-medium .oit-footer-primary-section > .oit-grid {
247 | padding: 0;
248 | }
249 |
250 | @media screen and (min-width: 707px) {
251 | .oit-footer-medium .oit-footer-primary-section > .oit-grid {
252 | padding-left: 3rem;
253 | padding-right: 3rem;
254 | }
255 | }
256 |
257 | @media screen and (min-width: 707px) {
258 | .oit-footer-medium .oit-footer-nav ul {
259 | -ms-flex-align: center;
260 | align-items: center;
261 | }
262 | }
263 |
264 | /* stylelint-enable */
265 | .oit-grid,
266 | .oit-grid-full {
267 | margin-left: auto;
268 | margin-right: auto;
269 | }
270 |
271 | .oit-grid::after,
272 | .oit-grid-full::after {
273 | clear: both;
274 | content: "";
275 | display: block;
276 | }
277 |
278 | .oit-grid {
279 | padding-right: 1.5rem;
280 | padding-left: 1.5rem;
281 | }
282 |
283 | @media screen and (min-width: 707px) {
284 | .oit-grid {
285 | padding-right: 3rem;
286 | padding-left: 3rem;
287 | }
288 | }
289 |
290 | .oit-grid-full {
291 | padding: 0;
292 | }
293 |
294 | .oit-footer-secondary_section {
295 | background-color: #d6d7d9;
296 | padding-bottom: 2rem;
297 | padding-top: 1rem;
298 | }
299 |
300 | .oit-footer-secondary_section a {
301 | color: #212121;
302 | }
303 |
304 | @media screen and (min-width: 400px){
305 | .oit-width-one-fourth {
306 | float: left;
307 | display: block;
308 | margin-right: 4.82916%;
309 | width: 47.58542%;
310 | }
311 | .oit-width-one-fourth:last-child {
312 | margin-right: 0;
313 | }
314 | .oit-width-one-fourth:nth-child(2n) {
315 | margin-right: 0;
316 | }
317 | }
318 |
319 | @media screen and (min-width: 630px) {
320 | .oit-width-one-whole {
321 | float: left;
322 | display: block;
323 | margin-right: 4.82916%;
324 | width: 100%;
325 | }
326 | .oit-width-one-whole:last-child {
327 | margin-right: 0;
328 | }
329 | .oit-width-one-half {
330 | float: left;
331 | display: block;
332 | margin-right: 4.82916%;
333 | width: 47.58542%;
334 | }
335 | .oit-width-one-half:last-child {
336 | margin-right: 0;
337 | }
338 | .oit-social_link, .oit-link-facebook, .oit-link-twitter, .oit-link-youtube, .oit-link-rss, .oit-link-github {
339 | left: 1.5rem;
340 | }
341 | }
342 |
343 | @media screen and (min-width: 707px){
344 | .oit-width-one-fourth {
345 | float: left;
346 | display: block;
347 | margin-right: 2.35765%;
348 | width: 23.23176%;
349 | }
350 | .oit-width-one-fourth:last-child {
351 | margin-right: 0;
352 | }
353 | .oit-width-one-fourth:nth-child(2n) {
354 | float: left;
355 | display: block;
356 | margin-right: 2.35765%;
357 | width: 23.23176%;
358 | }
359 | .oit-width-one-fourth:nth-child(2n):last-child {
360 | margin-right: 0;
361 | }
362 | .oit-width-one-fourth:nth-child(4n) {
363 | margin-right: 0;
364 | }
365 | }
366 |
367 | @media screen and (min-width: 1201px) {
368 | .oit-width-one-whole {
369 | float: left;
370 | display: block;
371 | margin-right: 2.35765%;
372 | width: 100%;
373 | }
374 | .oit-width-one-whole:last-child {
375 | margin-right: 0;
376 | }
377 | .oit-width-one-half {
378 | float: left;
379 | display: block;
380 | margin-right: 2.35765%;
381 | width: 48.82117%;
382 | }
383 | .oit-width-one-half:last-child {
384 | margin-right: 0;
385 | }
386 | }
387 |
388 |
389 |
390 | .oit-width-one-whole:last-child > :last-child,
391 | .oit-width-one-half:first-child > :first-child,
392 | .oit-width-one-fourth:first-child > :first-child{
393 | margin-top: 0;
394 | }
395 |
396 | @media screen and (min-width: 707px) {
397 | .oit-width-one-whole:last-child > :last-child,
398 | .oit-width-one-half > :first-child,
399 | .oit-width-one-fourth > :first-child{
400 | margin-top: 0;
401 | }
402 | }
403 |
404 | .oit-width-one-whole:last-child > :last-child,
405 | .oit-width-one-half:last-child > :last-child,
406 | .oit-width-one-fourth:last-child > :last-child{
407 | margin-bottom: 0;
408 | }
409 |
410 | @media screen and (min-width: 707px) {
411 | .oit-width-one-whole:last-child > :last-child,
412 | .oit-width-one-half > :last-child,
413 | .oit-width-one-fourth > :last-child{
414 | margin-bottom: 0;
415 | }
416 | }
417 |
418 | @media screen and (min-width: 630px) {
419 | .oit-footer-contact-links {
420 | text-align: right;
421 | }
422 | }
423 |
424 |
--------------------------------------------------------------------------------
/AR/footer/OIT-footer.html:
--------------------------------------------------------------------------------
1 |
2 |
58 |
--------------------------------------------------------------------------------
/AR/footer/OIT-footer.js:
--------------------------------------------------------------------------------
1 | function insertFooterHere(divParentID){
2 | var divParent = document.getElementById(divParentID);
3 | var footBlock = document.createElement("div");
4 | footBlock.setAttribute("w3-include-html" , "footer/OIT-footer.html");
5 | divParent.appendChild(footBlock);
6 | subIFH();
7 | }
8 |
9 | function subIFH(){
10 | var z, i, elmnt, file, xhttp;
11 | /* Loop through a collection of all HTML elements: */
12 | z = document.getElementsByTagName("div");
13 | for (i = 0; i < z.length; i++) {
14 | elmnt = z[i];
15 | /*search for elements with a certain atrribute:*/
16 | file = elmnt.getAttribute("w3-include-html");
17 | if (file) {
18 | /* Make an HTTP request using the attribute value as the file name: */
19 | xhttp = new XMLHttpRequest();
20 | xhttp.onreadystatechange = function() {
21 | if (this.readyState == 4) {
22 | if (this.status == 200) {elmnt.innerHTML = this.responseText;}
23 | if (this.status == 404) {elmnt.innerHTML = "Page not found.";}
24 | /* Remove the attribute, and call this function once more: */
25 | elmnt.removeAttribute("w3-include-html");
26 | subIFH();
27 | }
28 | }
29 | xhttp.open("GET", file, true);
30 | xhttp.send();
31 | /* Exit the function: */
32 | return;
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/AR/footer/img/png/facebook25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/footer/img/png/facebook25.png
--------------------------------------------------------------------------------
/AR/footer/img/png/flickr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/footer/img/png/flickr.png
--------------------------------------------------------------------------------
/AR/footer/img/png/github32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/footer/img/png/github32.png
--------------------------------------------------------------------------------
/AR/footer/img/png/rss25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/footer/img/png/rss25.png
--------------------------------------------------------------------------------
/AR/footer/img/png/twitter16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/footer/img/png/twitter16.png
--------------------------------------------------------------------------------
/AR/footer/img/png/youtube15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/AR/footer/img/png/youtube15.png
--------------------------------------------------------------------------------
/AR/footer/img/svg/facebook25.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AR/footer/img/svg/flickr.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | image/svg+xml
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/AR/footer/img/svg/rss25.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AR/footer/img/svg/twitter16.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AR/footer/img/svg/youtube15.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AR/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
17 |
18 |
36 |
37 | Loading...
38 |
39 |
40 |
41 |
42 |
44 |
45 |
46 |
47 |
48 |
62 |
63 |
--------------------------------------------------------------------------------
/AR/js/notebook.js:
--------------------------------------------------------------------------------
1 | //Async function that waits for the notebook to load completely before loading the AR /components
2 | function checkforD3Load(){
3 | if (document.getElementsByTagName("video").length > 0 && document.getElementsByTagName("select").length > 0){
4 | console.log("Load finishing...");
5 | setTimeout(loadAR, 100);
6 | }
7 | else{
8 | console.log("loading...");
9 | // Current wait time is one-tenth second
10 | setTimeout(checkforD3Load, 100);
11 | }
12 | }
13 |
14 | //Initial load of the AR visualization
15 | function loadAR(){
16 | document.getElementById("arjsDebugUIContainer").style.display = "none";
17 | document.getElementById("dataD3").style.display = "none";
18 | document.getElementById("arjs-video").style.overflow = "hidden";
19 | //function definition at line 47
20 | reloadAR();
21 | var formArray = document.getElementsByTagName("form");
22 | var footDiv = document.getElementById("sliders");
23 | var origLength = formArray.length - 1;
24 | //This loop grabs the sliders from the notebook and puts them in the footer
25 | for(var x = 0; x < origLength; x++){
26 | var textRm = formArray[0].getElementsByTagName('div')[1];
27 | textRm.classList.add("textDesc");
28 | // I override the original descriptions due to them being really long
29 | if(x == 0){
30 | textRm.innerHTML = "Min.: 0 to 50 with steps by 5";
31 | }
32 | else{
33 | textRm.innerHTML = "Max.: 0 to 50 with steps by 5";
34 | formArray[0].getElementsByTagName('div')[0].classList.add("sliderBottom");
35 | }
36 | formArray[0].getElementsByTagName('div')[0].setAttribute("style", "float: left;");
37 | formArray[0].append(textRm);
38 | textRm.setAttribute("style", "padding-left: 11rem;");
39 | formArray[0].getElementsByTagName("input")[0].onchange = function(){reloadAR();};
40 | console.log(formArray[0]);
41 | footDiv.append(formArray[0]);
42 | }
43 | // This grabs the Cluster Visualization Selecter and the Link Box from the notebook
44 | formArray[0].getElementsByTagName("select")[0].setAttribute("onchange", "new function(){reloadAR();}");
45 | formArray[0].getElementsByTagName("div")[1].style.display = "none";
46 | document.getElementById("clusterList").append(formArray[0]);
47 | document.getElementsByTagName("section")[0].style.background = "white";
48 | document.getElementsByTagName("section")[0].style.padding = 0;
49 | document.getElementById("clusterLinks").append(document.getElementsByTagName("section")[0]);
50 | document.getElementById("tutorial").classList.add("instructions");
51 | setTimeout(function(){document.getElementById("tutorial").innerHTML = "Click or Tap to Select a Tag";}, 1000);
52 | setTimeout(tutorialPrev, 3500);
53 | }
54 |
55 | function reloadAR(){
56 | var nodes = document.getElementsByTagName("g");
57 | var aScene = document.getElementById("aScene");
58 | //Clears the scene of previous renders if any
59 | while (aScene.firstChild) {
60 | aScene.removeChild(aScene.firstChild);
61 | }
62 | // for each circle on the D3, this converts the circle attributes into spheres and plots them along the surface of a hemisphere
63 | for (var x = 0; x < nodes.length; x++){
64 | var newNode = document.createElement("a-sphere");
65 | var nodeText = document.createElement("a-text");
66 | var newPos = d3.select(nodes[x]).attr("transform").substring(10).split(",");
67 | newPos[1] = (newPos[1].substring(0,newPos[1].length - 1));
68 | var newPosNum = [Number(newPos[0])/200 - 2.33, Number(newPos[1])/200 - 2.33];
69 | var newSize = d3.select(nodes[x].children[0]).attr("r")/200;
70 | newPosNum[2] = Math.sqrt(2.6*2.6 - newPosNum[0]*newPosNum[0] - newPosNum[1]*newPosNum[1]) - 1.3;
71 | newNode.object3D.position.set(newPosNum[0], newPosNum[2] ,newPosNum[1]);
72 | //Formatting the sphere title object
73 | nodeText.object3D.position.set(0, newSize + .05 ,0);
74 | nodeText.object3D.rotation.set(
75 | THREE.Math.degToRad(0),
76 | THREE.Math.degToRad(270),
77 | THREE.Math.degToRad(0)
78 | );
79 | nodeText.setAttribute("value", nodes[x].innerHTML.split("<")[0].split(":")[1]);
80 | nodeText.setAttribute("position", nodeText.object3D.position);
81 | nodeText.setAttribute("rotation", {x: 270, y: 0, z: 0});
82 | nodeText.setAttribute("wrap-count", 200);
83 | nodeText.setAttribute("color", "black");
84 | nodeText.setAttribute("align", "center");
85 | //Formatting the sphere object
86 | newNode.setAttribute("position", newNode.object3D.position);
87 | newNode.setAttribute("radius", newSize);
88 | newNode.setAttribute("color", d3.select(nodes[x].children[0]).attr("fill"));
89 | newNode.setAttribute("colorBU", d3.select(nodes[x].children[0]).attr("fill"));
90 | // These attributes store the information for the pop up menu
91 | newNode.setAttribute("projects", d3.select(nodes[x]).datum().data.projects);
92 | newNode.setAttribute("name", d3.select(nodes[x]).datum().data.name.split(":")[1]);
93 | newNode.setAttribute("count", d3.select(nodes[x]).datum().data.value);
94 | // "Clickable" is so the raycaster can touch the sphere
95 | newNode.classList.add("clickable");
96 | //Function that pauses the AR and displays more information in the popup menu
97 | newNode.addEventListener('click', function (evt) {
98 | var videoFeed = document.getElementById("aScene");
99 | videoFeed.pause();
100 | videoFeed.setAttribute("paused", "");
101 | var tempAName = document.createElement("a");
102 | tempAName.setAttribute("href", "https://code.nasa.gov/?q=" + this.getAttribute("name"));
103 | tempAName.innerHTML = this.getAttribute("name");
104 | var tagName = document.getElementById("TagName");
105 | while (tagName.firstChild) {
106 | tagName.removeChild(tagName.firstChild);
107 | }
108 | tagName.append(tempAName);
109 | document.getElementById("Count").innerHTML = this.getAttribute("count");
110 | var projects = this.getAttribute("projects").split(',');
111 | var container = document.getElementById("Projects");
112 | while (container.firstChild) {
113 | container.removeChild(container.firstChild);
114 | }
115 | for(var x = 0; x < projects.length; x++){
116 | var tempA = document.createElement("a");
117 | if (x != projects.length - 1){
118 | tempA.innerHTML = projects[x] + ", ";
119 | }
120 | else{
121 | tempA.innerHTML = projects[x];
122 | }
123 | tempA.setAttribute("href", "https://code.nasa.gov/?q=" + projects[x].split('(')[0]);
124 | container.append(tempA);
125 | }
126 | document.getElementById("footerDiv").classList.add("visible");
127 | document.getElementsByClassName("mobileCH")[0].classList.add("visible");
128 | document.getElementsByTagName("main")[0].classList.add("visible");
129 |
130 | });
131 | // When hovering over a sphere, the object turns blue
132 | newNode.addEventListener('mouseenter', function (evt) {
133 | this.setAttribute("color", "lightblue");
134 | });
135 | newNode.addEventListener('mouseleave', function (evt) {
136 | this.setAttribute("color", this.getAttribute("colorBU"));
137 | });
138 | //Add to AR scene
139 | newNode.appendChild(nodeText);
140 | aScene.appendChild(newNode);
141 | }
142 | }
143 |
144 | function tutorialPrev(){
145 | document.getElementById("tutorial").classList.add("visible");
146 | }
147 |
148 | //Sets the AR load into motion
149 | setTimeout(checkforD3Load, 100);
150 |
--------------------------------------------------------------------------------
/AR/js/setup.js:
--------------------------------------------------------------------------------
1 | //General function for unpausing the AR simulation.
2 | function resumeAR(){
3 | var videoFeed = document.getElementById("aScene");
4 | if (videoFeed.getAttribute("paused")!= null){
5 | videoFeed.play();
6 | videoFeed.removeAttribute("paused");
7 | document.getElementById("footerDiv").classList.remove("visible");
8 | document.getElementsByTagName("main")[0].classList.remove("visible");
9 | }
10 | }
11 | //Function for the Submenu screen button
12 | function buttonToggle(){
13 | var videoFeed = document.getElementById("aScene");
14 | var dropdown = document.getElementsByClassName("dropdown")[0];
15 | //button toggles off
16 | if(videoFeed.getAttribute("paused") != null){
17 | resumeAR();
18 | dropdown.classList.remove("visible");
19 | }
20 | //button toggles on
21 | else{
22 | videoFeed.pause();
23 | videoFeed.setAttribute("paused", "");
24 | dropdown.classList.add("visible");
25 | }
26 | }
--------------------------------------------------------------------------------
/NASA-M-16-21-Framework.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/NASA-M-16-21-Framework.pdf
--------------------------------------------------------------------------------
/NASA-M-16-21-OCIO-Memo.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/NASA-M-16-21-OCIO-Memo.pdf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CODE.NASA.GOV
2 |
3 | [](https://travis-ci.org/nasa/code-nasa-gov)
4 |
5 | Catalog of Open Source Software from NASA. Built using [Polymer](https://www.polymer-project.org).
6 |
7 | ## Do You have a Open-Source Code Project For This Site?
8 |
9 | #### Instructions
10 | Instructions for releasing a NASA open-source project can be found on https://code.nasa.gov/#/guide .
11 |
12 | #### Code.json vs Category.json
13 | Newly approved code projects for release are added to code.json. You can add your approved open-source NASA project to code.json , here .
14 |
15 | All federal agencies are mandated to have a code.json that is then harvested by the General Services Adminstration (GSA) and aggregated into code.gov.
16 |
17 | Code.json is reformatted by a script run by NASA's open-innovation team into category.json . Category.json has some attributes not in code.json and is used to build the project page on code.nasa.gov.
18 |
19 | Additionally, at this time, only category.json has the A.I.-generated keyword tags in addition to the human-generated tags. This may change in the future.
20 |
21 | #### Why code.json is bigger than category.json
22 | Some of the code projects in code.json have open-source licenses. Other projects in code.json have government-source only licenses, meaning sharing is constrainted to government agencies. All of the code projects listed in category.json have open-source licenses.
23 |
24 | ### Making your own data visualization with the JSONs that drive code.nasa.gov:
25 | - https://observablehq.com/@justingosses/finding-recent-additions-to-code-nasa-gov
26 | - https://observablehq.com/@briantoliveira/untitled
27 |
28 | If you make your own visualization, please add it as an issue. We would love to see it!
29 |
30 | ## Running The Code In This Repository
31 |
32 | ### Setup
33 |
34 | test
35 |
36 | ### Prerequisites
37 |
38 | Install bower and [polymer-cli](https://github.com/Polymer/polymer-cli):
39 |
40 | npm install -g bower polymer-cli
41 |
42 | Check that you are using Node v8+
43 |
44 | node -v
45 |
46 | ### Install dependencies
47 |
48 | bower i
49 |
50 | ### Start the development server
51 |
52 | This command serves the app at `http://localhost:8080` and provides basic URL
53 | routing for the app:
54 |
55 | polymer serve --open
56 |
57 |
58 | ### Build
59 |
60 | This command performs HTML, CSS, and JS minification on the application
61 | dependencies and generates a service-worker.js file with code to pre-cache the
62 | dependencies based on the entrypoint and fragments specified in `polymer.json`.
63 | The minified files are output to the `build/unbundled` folder, and are suitable
64 | for serving from a HTTP/2+Push compatible server.
65 |
66 | In addition the command also creates a fallback `build/bundled` folder,
67 | generated using fragment bundling, suitable for serving from non
68 | H2/push-compatible servers or to clients that do not support H2/Push.
69 |
70 | polymer build
71 |
72 | ### Preview the build
73 |
74 | This command serves the minified version of the app at `http://localhost:8080`
75 | in an unbundled state, as it would be served by a push-compatible server:
76 |
77 | polymer serve build/unbundled
78 |
79 | This command serves the minified version of the app at `http://localhost:8080`
80 | generated using fragment bundling:
81 |
82 | polymer serve build/bundled
83 |
84 | ### Deploying
85 |
86 | When deploying to a static web server (with no HTTP/2+Push), be sure to copy only
87 | the files from `build/bundled` directory (**NOT** the project directory) which
88 | contains a functional service worker and minified files. Put them in a top level part of the directory, not within another build/bundled directory within the production directory.
89 |
90 | ### Adding a new view
91 |
92 | You can extend the app by adding more views that will be demand-loaded
93 | e.g. based on the route, or to progressively render non-critical sections
94 | of the application. Each new demand-loaded fragment should be added to the
95 | list of `fragments` in the included `polymer.json` file. This will ensure
96 | those components and their dependencies are added to the list of pre-cached
97 | components (and will have bundles created in the fallback `bundled` build).
98 |
--------------------------------------------------------------------------------
/app.yaml:
--------------------------------------------------------------------------------
1 | runtime: python27
2 | api_version: 1
3 | threadsafe: yes
4 |
5 | handlers:
6 | - url: /bower_components
7 | static_dir: bower_components
8 | secure: always
9 |
10 | - url: /data
11 | static_dir: data
12 | secure: always
13 |
14 | - url: /fonts
15 | static_dir: fonts
16 | secure: always
17 |
18 | - url: /images
19 | static_dir: images
20 | secure: always
21 |
22 | - url: /src
23 | static_dir: src
24 | secure: always
25 |
26 | - url: /service-worker.js
27 | static_files: service-worker.js
28 | upload: service-worker.js
29 | secure: always
30 |
31 | - url: /manifest.json
32 | static_files: manifest.json
33 | upload: manifest.json
34 | secure: always
35 |
36 | - url: /NASA-M-16-21-OCIO-Memo.pdf
37 | static_files: NASA-M-16-21-OCIO-Memo.pdf
38 | upload: NASA-M-16-21-OCIO-Memo.pdf
39 | secure: always
40 |
41 | - url: /NASA-M-16-21-Framework.pdf
42 | static_files: NASA-M-16-21-Framework.pdf
43 | upload: NASA-M-16-21-Framework.pdf
44 | secure: always
45 |
46 | - url: /code.json
47 | static_files: code.json
48 | upload: code.json
49 | secure: always
50 |
51 | - url: /.*
52 | static_files: index.html
53 | upload: index.html
54 | secure: always
55 |
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "code-nasa-gov",
3 | "authors": [
4 | "The Polymer Authors"
5 | ],
6 | "private": true,
7 | "dependencies": {
8 | "app-layout": "PolymerElements/app-layout#^0.10.0",
9 | "app-route": "PolymerElements/app-route#^0.9.0",
10 | "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0",
11 | "iron-icon": "PolymerElements/iron-icon#^1.0.0",
12 | "iron-iconset-svg": "PolymerElements/iron-iconset-svg#^1.0.0",
13 | "iron-localstorage": "PolymerElements/iron-localstorage#^1.0.0",
14 | "iron-media-query": "PolymerElements/iron-media-query#^1.0.0",
15 | "iron-pages": "PolymerElements/iron-pages#^1.0.0",
16 | "iron-selector": "PolymerElements/iron-selector#^1.0.0",
17 | "paper-icon-button": "PolymerElements/paper-icon-button#~1.1.0",
18 | "polymer": "Polymer/polymer#^1.6.0",
19 | "paper-input": "PolymerElements/paper-input#^1.1.20",
20 | "iron-list": "PolymerElements/iron-list#^1.3.11"
21 | },
22 | "devDependencies": {
23 | "web-component-tester": "^4.0.0"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/cron_scripts/code_to_catalog.py:
--------------------------------------------------------------------------------
1 | # IMPORTANT: A daily cronjob on tiprod runs this script
2 |
3 | import json
4 | import requests
5 | from datetime import datetime
6 | from subprocess import Popen, PIPE
7 |
8 | # User-set constants
9 | CODE_URL = 'https://raw.githubusercontent.com/nasa/Open-Source-Catalog/master/code.json'
10 | CATALOG_OUT_LOCATION = '/var/www/code/docroot/data/catalog.json'
11 | CATALOG_BACKUP_DIR = '/var/www/code/docroot/catalog_backups'
12 | CURRENT_CATALOG_FILE = '/var/www/code/docroot/data/catalog.json'
13 |
14 | # Computed constants
15 | CATALOG_BACKUP_FILE = '/catalog.json.' + datetime.today().strftime('%Y-%m-%d')
16 | CATALOG_BACKUP_FULL_PATH = CATALOG_BACKUP_DIR + CATALOG_BACKUP_FILE
17 |
18 | # Helper to extract all contributor data from code.json format to catalog.json
19 | # format
20 | def getContribs(full_contribs):
21 |
22 | out_contribs = []
23 |
24 | for c in full_contribs:
25 | try:
26 | if c['name']:
27 | out_contribs += [ c['name'] ]
28 | except: pass
29 | try:
30 | if c['email']:
31 | out_contribs += [ c['email'] ]
32 | except: pass
33 | try:
34 | if c['github']:
35 | out_contribs += [ c['github'] ]
36 | except: pass
37 |
38 | return out_contribs
39 |
40 | res = requests.get(CODE_URL)
41 | code_projs = res.json()['releases']
42 |
43 | cat_projs = []
44 |
45 | # Iterate through all projects from code.json
46 | for p in code_projs:
47 |
48 | new_proj = {}
49 |
50 | # Check if project is open source
51 | if p['permissions']['usageType'] == 'openSource':
52 |
53 | new_proj['Update_Date'] = p['date']['metadataLastUpdated']
54 | new_proj['Description'] = p['description']
55 | new_proj['Public Code Repo'] = p['repositoryURL']
56 | new_proj['NASA Center'] = p['organization']
57 | new_proj['Contributors'] = getContribs(p['contributors'])
58 | new_proj['Labor_Hours'] = p['laborHours']
59 | new_proj['Categories'] = p['tags']
60 | new_proj['Languages'] = []
61 | new_proj['Software'] = p['name']
62 | new_proj['License'] = [ l['name'] for l in p['permissions']['licenses'] ]
63 |
64 | try:
65 | new_proj['Categories_NLP'] = p['sti_keywords_passed_thresholds']
66 |
67 | except:
68 | new_proj['Categories_NLP'] = []
69 |
70 | try:
71 | new_proj['External Link'] = p['homepageURL']
72 | except:
73 | try:
74 | new_proj['External Link'] = p['disclaimerURL']
75 | except:
76 | new_proj['External Link'] = ""
77 |
78 | cat_projs += [new_proj]
79 |
80 | # Check if new catalog items successfuly generated
81 | if len(cat_projs) > 500:
82 |
83 | # Move old catalog.json to backup dir
84 | process = Popen(['cp', CURRENT_CATALOG_FILE, CATALOG_BACKUP_FULL_PATH], stdout=PIPE, stderr=PIPE)
85 | stdout, stderr = process.communicate()
86 | print (stderr)
87 |
88 | # Write out new catalog.json
89 | f = open(CURRENT_CATALOG_FILE, 'w+')
90 | f.write(json.dumps(cat_projs, indent=4))
91 | f.close()
92 |
93 |
--------------------------------------------------------------------------------
/cron_scripts/release.sh:
--------------------------------------------------------------------------------
1 | #pull down master branch
2 | old_head=$(git rev-parse HEAD)
3 | git pull https://github.com/nasa/code-nasa-gov.git
4 | new_head=$(git rev-parse HEAD)
5 | echo "$old_head : $new_head"
6 |
7 | #run polymer build if there is any new commits
8 | if [ $old_head = $new_head ]; then
9 | echo "No new commits"
10 | else
11 | echo "New commits pulled from repo"
12 | echo "running polymer build"
13 | polymer build
14 | #copy build files into the root of the app
15 | FILES='build/*'
16 | for file in $FILES
17 | do
18 | echo "copying $file to root directory"
19 | cp $file $PWD
20 | done
21 |
22 | FILES='build/bundled/*'
23 | for file in $FILES
24 | do
25 | echo "copying $file to root directory"
26 | cp -r $file $PWD
27 | done
28 | fi
--------------------------------------------------------------------------------
/data/SRA.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Center": "ARC",
4 | "Email": "arc-sra-team@mail.nasa.gov"
5 | },
6 | {
7 | "Center": "AFRC",
8 | "Email": "afrc-ipo-softwarecatalogue@mail.nasa.gov"
9 | },
10 | {
11 | "Center": "GRC",
12 | "Email": "grc-sra-team@mail.nasa.gov"
13 | },
14 | {
15 | "Center": "GSFC",
16 | "Email": "gsfc-softwarerequest@mail.nasa.gov"
17 | },
18 | {
19 | "Center": "HQ",
20 | "Email": "hq-sra-team@mail.nasa.gov"
21 | },
22 | {
23 | "Center": "JPL",
24 | "Email": "jpl_ott@jpl.nasa.gov"
25 | },
26 | {
27 | "Center": "JSC",
28 | "Email": "jsc-ttco-software-request@mail.nasa.gov"
29 | },
30 | {
31 | "Center": "KSC",
32 | "Email": "ksc-dl-software-request@mail.nasa.gov"
33 | },
34 | {
35 | "Center": "LaRC",
36 | "Email": "larc-sra@mail.nasa.gov"
37 | },
38 | {
39 | "Center": "MSFC",
40 | "Email": "msfc-sra-team@mail.nasa.gov"
41 | },
42 | {
43 | "Center": "SSC",
44 | "Email": "ssc-technology@nasa.gov"
45 | }
46 | ]
47 |
--------------------------------------------------------------------------------
/data/deprecated/SRA_old.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Center": "ARC",
4 | "Name": "Martha Del Alto",
5 | "Title": "SRA",
6 | "Phone": "650.604.4865",
7 | "Email": "martha.e.delalto@nasa.gov"
8 | },
9 | {
10 | "Center": "ARC",
11 | "Name": "Kim Chrestenson",
12 | "Title": "SRA Alternate",
13 | "Phone": "650.604.5063",
14 | "Email": "kim.l.chrestenson@nasa.gov"
15 | },
16 | {
17 | "Center": "AFRC",
18 | "Name": "Earl Adams",
19 | "Title": "SRA",
20 | "Phone": "661.276.5307",
21 | "Email": "earl.s.adams@nasa.gov"
22 | },
23 | {
24 | "Center": "AFRC",
25 | "Name": "Samantha Hull",
26 | "Title": "SRA Alternate",
27 | "Phone": "661.276.3368",
28 | "Email": "samantha.m.hull@nasa.gov"
29 | },
30 | {
31 | "Center": "GRC",
32 | "Name": "Kim Dalgleish-Miller",
33 | "Title": "SRA",
34 | "Phone": "216.433.8047",
35 | "Email": "kimberly.a.dalgleish@nasa.gov"
36 | },
37 | {
38 | "Center": "GRC",
39 | "Name": "Jason Hanna",
40 | "Title": "SRA Alternate",
41 | "Phone": "216.433.6731",
42 | "Email": "jason.m.hanna@nasa.gov"
43 | },
44 | {
45 | "Center": "GSFC",
46 | "Name": "Nona K. Cheeks",
47 | "Title": "SRA",
48 | "Phone": "301.286.5810",
49 | "Email": "nona.k.cheeks@nasa.gov"
50 | },
51 | {
52 | "Center": "GSFC",
53 | "Name": "Enidia Santiago-Arce",
54 | "Title": "SRA Alternate",
55 | "Phone": "301.286.8497",
56 | "Email": "enidia.santiago-arce@nasa.gov"
57 | },
58 | {
59 | "Center": "HQ",
60 | "Name": "Liteshia Dennis",
61 | "Title": "SRA",
62 | "Phone": "202.358.4778",
63 | "Email": "liteshia.b.dennis@nasa.gov"
64 | },
65 | {
66 | "Center": "HQ",
67 | "Name": "Stanley Artis",
68 | "Title": "SRA",
69 | "Phone": "202.358.2032",
70 | "Email": "stanley.artis-1@nasa.gov"
71 | },
72 | {
73 | "Center": "JPL",
74 | "Name": "Brian Morrison",
75 | "Title": "SRA",
76 | "Phone": "818.354.2458",
77 | "Email": "brian.a.morrison@jpl.nasa.gov"
78 | },
79 | {
80 | "Center": "JSC",
81 | "Name": "Michelle Kamman",
82 | "Title": "SRA",
83 | "Phone": "281.483.7548",
84 | "Email": "michelle.kamman-1@nasa.gov"
85 | },
86 | {
87 | "Center": "KSC",
88 | "Name": "Roger Liang",
89 | "Title": "SRA",
90 | "Phone": "321.861.2224",
91 | "Email": "roger.h.liang@nasa.gov"
92 | },
93 | {
94 | "Center": "KSC",
95 | "Name": "Lew Parrish",
96 | "Title": "SRA Alternate",
97 | "Phone": "321.867.5033",
98 | "Email": "lewis.m.parrish@nasa.gov"
99 | },
100 | {
101 | "Center": "LaRC",
102 | "Name": "Bonnie Lumanog",
103 | "Title": "SRA",
104 | "Phone": "757.864.2933",
105 | "Email": "b.lumanog@nasa.gov"
106 | },
107 | {
108 | "Center": "MSFC",
109 | "Name": "Danny Garcia",
110 | "Title": "SRA",
111 | "Phone": "256.544.4138",
112 | "Email": "danny.garcia-1@nasa.gov"
113 | },
114 | {
115 | "Center": "MSFC",
116 | "Name": "Carolyn McMillian",
117 | "Title": "SRA Alternate",
118 | "Phone": "256.544.9151",
119 | "Email": "carolyn.e.mcmillan@nasa.gov"
120 | },
121 | {
122 | "Center": "SSC",
123 | "Name": "Gigi Savona",
124 | "Title": "SRA",
125 | "Phone": "228.688.3605",
126 | "Email": "gigi.h.savona@nasa.gov"
127 | }
128 | ]
129 |
--------------------------------------------------------------------------------
/data/deprecated/test/code-nasa-app.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | code-nasa-app
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/data/deprecated/test/index.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Tests
18 |
19 |
20 |
21 |
22 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/data/license_mappings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ALv2": {
3 | "License Long Name": "Apache License 2.0",
4 | "License Link": "https://www.apache.org/licenses/LICENSE-2.0"
5 | },
6 | "Apache-2.0": {
7 | "License Long Name": "Apache License 2.0",
8 | "License Link": "https://www.apache.org/licenses/LICENSE-2.0"
9 | },
10 | "ASL": {
11 | "License Long Name": "Apache Software License",
12 | "License Link": "https://www.apache.org/licenses/"
13 | },
14 | "BSD-3-Clause": {
15 | "License Long Name": "BSD 3-Clause 'New' or 'Revised' license",
16 | "License Link": "http://opensource.org/licenses/BSD-3-Clause"
17 | },
18 | "BSDv3": {
19 | "License Long Name": "BSD 3-Clause 'New' or 'Revised' license",
20 | "License Link": "http://opensource.org/licenses/BSD-3-Clause"
21 | },
22 | "BSDv2": {
23 | "License Long Name": "BSD 2-Clause 'Simplified' or 'FreeBSD' license",
24 | "License Link": "http://opensource.org/licenses/BSD-2-Clause"
25 | },
26 | "FreeBSD": {
27 | "License Long Name": "BSD 2-Clause 'Simplified' or 'FreeBSD' license",
28 | "License Link": "http://opensource.org/licenses/BSD-2-Clause"
29 | },
30 | "BSD": {
31 | "License Long Name": "Berkeley Source Distribution",
32 | "License Link": "http://en.wikipedia.org/wiki/BSD_licenses"
33 | },
34 | "CC0": {
35 | "License Long Name": "Creative Commons Public Domain Dedication",
36 | "License Link": "https://creativecommons.org/publicdomain/zero/1.0/"
37 | },
38 | "CPL": {
39 | "License Long Name": "Common Public License",
40 | "License Link": "http://opensource.org/licenses/cpl1.0.php"
41 | },
42 | "CDDL": {
43 | "License Long Name": "Common Development and Distribution License",
44 | "License Link": "http://en.wikipedia.org/wiki/Common_Development_and_Distribution_License"
45 | },
46 | "CMUCS": {
47 | "License Long Name": "Carnegie Mellon University Software Licensing",
48 | "License Link": "http://www.cs.cmu.edu/~helpext/software_licensing/index.html"
49 | },
50 | "COTS": {
51 | "License Long Name": "Commercial off-the-shelf",
52 | "License Link": "http://en.wikipedia.org/wiki/Commercial_off-the-shelf"
53 | },
54 | "EPL": {
55 | "License Long Name": "Eclipse Public License",
56 | "License Link": "http://www.eclipse.org/legal/epl-v10.html"
57 | },
58 | "GPR": {
59 | "License Long Name": "Government Purpose Rights",
60 | "License Link": "http://www.acq.osd.mil/dpap/dars/dfars/html/current/227_71.htm"
61 | },
62 | "GPLv3": {
63 | "License Long Name": "GNU General Public License (GPL) version 3",
64 | "License Link": "http://www.gnu.org/licenses/gpl.html"
65 | },
66 | "GPL": {
67 | "License Long Name": "GNU General Public License (GPL) version 3",
68 | "License Link": "http://www.gnu.org/licenses/gpl.html"
69 | },
70 | "GPLv2": {
71 | "License Long Name": "GNU General Public License (GPL) version 2",
72 | "License Link": "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
73 | },
74 | "HTK": {
75 | "License Long Name": "University of Cambridge HTK License",
76 | "License Link": "http://llvm.org/releases/2.8/LICENSE.TXT"
77 | },
78 | "LGPL": {
79 | "License Long Name": "GNU Library or 'Lesser' General Public License (LGPL)",
80 | "License Link": "http://www.gnu.org/licenses/lgpl.html"
81 | },
82 | "LLVM": {
83 | "License Long Name": "LLVM Release License",
84 | "License Link": "http://llvm.org/releases/2.8/LICENSE.TXT"
85 | },
86 | "MIT": {
87 | "License Long Name": "MIT License",
88 | "License Link": "http://en.wikipedia.org/wiki/MIT_License"
89 | },
90 | "MPLv2": {
91 | "License Long Name": "Mozilla Public License 2.0",
92 | "License Link": "http://www.mozilla.org/MPL/2.0/"
93 | },
94 | "NASA Open Source": {
95 | "License Long Name": "NASA Open Source 3.0",
96 | "License Link": "https://opensource.org/license/nasa1-3-php/"
97 | },
98 | "NCSA": {
99 | "License Long Name": "NCSA/University of Illinois Open Source License",
100 | "License Link": "http://directory.fsf.org/wiki/License:IllinoisNCSA"
101 | },
102 | "NCSLA": {
103 | "License Long Name": "Non-Commercial Software License Agreement (CU14012)",
104 | "License Link": "https://secure.nouvant.com/columbia/technology/cu14012/license/258"
105 | },
106 | "Pending Release": {
107 | "License Long Name": "Pending Release",
108 | "License Link": "https://opensource.org/license/nasa1-3-php/"
109 | },
110 | "Public Domain": {
111 | "License Long Name": "Public Domain",
112 | "License Link": "http://directory.fsf.org/wiki/License:PublicDomain"
113 | },
114 | "SPL": {
115 | "License Long Name": "Sun Public License",
116 | "License Link": "http://en.wikipedia.org/wiki/Sun_Public_License"
117 | },
118 | "SUN": {
119 | "License Long Name": "Sun Public License",
120 | "License Link": "http://en.wikipedia.org/wiki/Sun_Public_License"
121 | },
122 | "UGPR": {
123 | "License Long Name": "Unlimited Government Purpose Rights",
124 | "License Link": "http://www.acq.osd.mil/dpap/dars/dfars/html/current/227_71.htm"
125 | }
126 | }
127 |
--------------------------------------------------------------------------------
/fonts/ArcaMajora3-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/fonts/ArcaMajora3-Bold.woff
--------------------------------------------------------------------------------
/fonts/ArcaMajora3-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/fonts/ArcaMajora3-Bold.woff2
--------------------------------------------------------------------------------
/fonts/ArcaMajora3-Heavy.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/fonts/ArcaMajora3-Heavy.woff
--------------------------------------------------------------------------------
/fonts/ArcaMajora3-Heavy.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/fonts/ArcaMajora3-Heavy.woff2
--------------------------------------------------------------------------------
/images/backgrounds/guide.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/backgrounds/guide.jpg
--------------------------------------------------------------------------------
/images/backgrounds/projects-bottom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/backgrounds/projects-bottom.jpg
--------------------------------------------------------------------------------
/images/backgrounds/projects.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/backgrounds/projects.jpg
--------------------------------------------------------------------------------
/images/backgrounds/share.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/backgrounds/share.jpg
--------------------------------------------------------------------------------
/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/favicon.ico
--------------------------------------------------------------------------------
/images/guide-steps/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/1.png
--------------------------------------------------------------------------------
/images/guide-steps/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/10.png
--------------------------------------------------------------------------------
/images/guide-steps/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/11.png
--------------------------------------------------------------------------------
/images/guide-steps/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/12.png
--------------------------------------------------------------------------------
/images/guide-steps/13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/13.png
--------------------------------------------------------------------------------
/images/guide-steps/14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/14.png
--------------------------------------------------------------------------------
/images/guide-steps/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/2.png
--------------------------------------------------------------------------------
/images/guide-steps/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/3.png
--------------------------------------------------------------------------------
/images/guide-steps/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/4.png
--------------------------------------------------------------------------------
/images/guide-steps/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/5.png
--------------------------------------------------------------------------------
/images/guide-steps/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/6.png
--------------------------------------------------------------------------------
/images/guide-steps/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/7.png
--------------------------------------------------------------------------------
/images/guide-steps/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/8.png
--------------------------------------------------------------------------------
/images/guide-steps/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/guide-steps/9.png
--------------------------------------------------------------------------------
/images/logos/nasa-144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/logos/nasa-144.png
--------------------------------------------------------------------------------
/images/logos/nasa-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/logos/nasa-192.png
--------------------------------------------------------------------------------
/images/logos/nasa-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/logos/nasa-48.png
--------------------------------------------------------------------------------
/images/logos/nasa-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/logos/nasa-512.png
--------------------------------------------------------------------------------
/images/logos/nasa-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/logos/nasa-72.png
--------------------------------------------------------------------------------
/images/logos/nasa-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/images/logos/nasa-96.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | NASA Open Source Software
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
154 |
155 |
156 |
157 |
158 |
177 |
178 |
179 |
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "NASA Open Source Software",
3 | "short_name": "NASA OSS",
4 | "start_url": "/",
5 | "display": "standalone",
6 | "theme_color": "#212121",
7 | "background_color": "#212121",
8 | "icons": [
9 | {
10 | "src": "images/logos/nasa-192.png",
11 | "sizes": "192x192",
12 | "type": "image/png"
13 | },
14 | {
15 | "src": "images/logos/nasa-512.png",
16 | "sizes": "512x512",
17 | "type": "image/png"
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "polymer-cli": "^1.9.11"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/polymer.json:
--------------------------------------------------------------------------------
1 | {
2 | "entrypoint": "index.html",
3 | "shell": "src/code-nasa-app.html",
4 | "fragments": [
5 | "src/code-nasa-projects.html",
6 | "src/code-nasa-guide.html",
7 | "src/code-nasa-share.html",
8 | "src/code-nasa-invalid.html"
9 | ],
10 | "sources": [
11 | "data/**/*",
12 | "cron_scripts/**/*",
13 | "fonts/**/*",
14 | "images/**/*",
15 | "src/**/*",
16 | "app.yaml",
17 | "bower.json"
18 | ],
19 | "extraDependencies": [
20 | "manifest.json",
21 | "bower_components/webcomponentsjs/webcomponents-lite.min.js"
22 | ],
23 | "builds": [
24 | {
25 | "name": "bundled",
26 | "bundle": true,
27 | "js": {"minify": true},
28 | "css": {"minify": true},
29 | "html": {"minify": true}
30 | },
31 | {
32 | "name": "unbundled",
33 | "js": {"minify": true},
34 | "css": {"minify": true},
35 | "html": {"minify": true}
36 | }
37 | ]
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/service-worker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @license
3 | * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
4 | * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5 | * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6 | * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7 | * Code distributed by Google as part of the polymer project is also
8 | * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9 | */
10 | console.info('Service worker disabled for development, will be generated at build time.');
11 |
--------------------------------------------------------------------------------
/src/code-nasa-app.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 | ×
208 | 📢 IMPORTANT: We are currently undergoing a website migration (we do not expect any outages during this process), but if you experience any issues, please reach out to the support team here.
209 |
210 |
211 |
225 |
226 |
227 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 | Projects
246 | Guide
247 |
248 | Related
249 | Experiments
250 |
251 |
252 |
253 |
254 |
306 |
307 |
308 |
--------------------------------------------------------------------------------
/src/code-nasa-experiments.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
73 |
74 |
75 |
76 |
77 |
78 | Experiments
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | An experiment that explores methods for visualizing NASA's open-source code projects using machine-learning generated keyword tags and clustering techniques. Exists as a live, editable, JavaScript + GUI notebook on ObservableHQ.
90 |
91 |
92 |
101 |
102 |
103 |
104 |
105 |
106 |
107 | One way to answer this question, is to tabulate Github statistics for forks, stars, clones, etc. This live, editable notebook on ObservableHQ lets you understand how the public is engaged with NASA code.
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | It is hard to get an exact answer to how many labor hours went into an agency's open-source software. This short notebook acts as an explorable explaination. It lets a user ballpark a likely range given a few assumptions.
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 | There is an astronomy code sharing website that incorporates NASA astronomy related code into their collection. In order to make their job easier, this notebook lets them download all new code of a given license type updated since a certain date.
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
--------------------------------------------------------------------------------
/src/code-nasa-guide.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
139 |
140 |
141 |
How to Publish
142 |
143 |
144 |
1
145 |
146 |
Submit a request to release your project as Open Source to your center SRA (Software Release Authority) at https://softwarerelease.ndc.nasa.gov/ . Check out a more detailed description of the SRA process at the bottom of this page.
147 |
148 |
149 |
150 |
151 |
2
152 |
153 |
After going through the SRA process, receive approval from your center SRA to release as Open Source.
154 |
155 |
156 |
157 |
158 |
3
159 |
162 |
163 |
164 |
165 |
4
166 |
169 |
170 |
171 |
172 |
5
173 |
174 |
Reach out to us after submitting NAMs request. We can help you join NASA Org or answer any questions.
175 |
176 |
177 |
178 |
179 |
6
180 |
181 |
Transfer or import your source code into the NASA Org on GitHub.
182 |
183 |
184 |
185 |
186 |
7
187 |
188 |
Update the NASA Open Source Catalog via a pull request (repo here ), or by our online form (behind NASA firewall) to register your project's meta-data. Be sure to provide good tags for your code project & follow this government-wide guidance on specific tags to use if your code involves machine-learning or artificial intelligence.
189 |
190 |
191 |
192 |
193 |
8
194 |
197 |
198 |
199 |
200 |
Overview
201 |
202 |
Software release at NASA is governed by NPR 2210.1C . NPR 2210.1C establishes the roles, responsibilities, and procedures for reporting, reviewing, and releasing software under various conditions, including open source. Every center has a Software Release Authority (SRA). The SRA processes requests for software release and coordinates legal, export control, IT security, 508 compliance, and software engineering standards compliance reviews. Projects hoping to release software should contact their SRA early to discuss their goals and begin the reporting, review, and release process.
203 |
204 |
205 |
206 |
207 |
SRAs
208 |
209 |
210 |
211 |
212 | Center
213 | Email
214 |
215 |
216 |
217 |
218 |
219 |
220 | [[item.Center]]
221 | [[item.Email]]
222 | [[item.Name]]
223 | [[item.Title]]
224 | [[item.Phone]]
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
SRA Details
234 |
235 |
To release code, it must go through a process run by the Software Release Authority or SRA.
236 |
One initiates the software review process by reporting the software as described in NPR 2210.1C (e.g., submitting a description of the software to be released, the individuals involved in its creation, development timeline, available documentation, and related topics). Depending on center procedures, this information may be captured through the NASA Technology Reporting System or standard form NF1679. Contact your SRA for the specific procedure used at your center.
237 |
Each piece of software is unique, and must be reviewed on a case-by-case basis. Generally speaking, however, the review process will address the following considerations:
238 |
239 |
Legal.
240 | It is important to ensure that NASA has appropriate rights in software, including subcomponents, before NASA releases that material outside the agency. Software is rarely developed in isolation. If your project uses external dependencies, you must provide details about such packages or sources when you report your software. (See NPR 2210.1C, Chapter 2 for details on reporting software.) The terms and conditions governing external software impact NASA's right to use and release software, and must be thoroughly analyzed before NASA can release software incorporating that external software. NASA attorneys will also help identify the set of terms and conditions that should govern a particular piece of software when NASA releases it. Per current NASA policy, NASA releases open source software under the NASA Open Source Agreement (NOSA) unless external Open Source Software incorporated into the NASA Open Source Software requires use of a different open source license or unless approved by Center Patent or IP Counsel. Such determinations must be made by your center intellectual property counsel before NASA may release the software in question.
241 |
Export Control.
242 | The Export Administration Regulations (EAR) and the International Traffic in Arms Regulations (ITAR), among other laws and policies, restrict which NASA technology may be publicly disclosed. Software falling within the scope of these laws or policies cannot be released open source, and may be subject to release restrictions. Your local export control staff can help you determine whether export control laws apply to your technology.
243 |
IT Security.
244 | Generally speaking, released software should not contain any information peculiar to NASA, such as user names, passwords, database credentials, IP addresses, host names, firewall and network information, or any other data which would expose or create vulnerabilities. Your SRA and IT Security staff will help you understand the types of risks occasioned by software release, and will work with you to remove elements of your software which may give rise to a vulnerability prior to release.
245 |
508 Compliance.
246 | When developing, procuring, maintaining, or using Electronic and Information Technology (EIT), Federal agencies must ensure that Federal employees with disabilities have access to and use of information and data that is comparable to that for other employees.
247 |
Software Engineering Requirements.
248 | NASA has established formal software engineering requirements in NPR 7150.2A. These requirements govern all software development activities and must be followed throughout a project's development life cycle. As part of the software release process, your center SRA and Engineering Technical Authority for software will work with you to verify (or establish) your software classification and ensure compliance with the corresponding engineering requirements prior to release. For this area of inquiry in particular it is best to front-load compliance by adhering to the software engineering requirements with a documented compliance matrix from the outset. Otherwise, you may incur significant delay and expense in obtaining compliance prior to release.
249 |
Depending on the number of projects being assessed for release at any given time general workloads and backlogs, traversing the release process can take anywhere from 3 to 6 months. The process may take longer for complex or novel release requests. Be sure to factor these time tables (with consultation with your SRA) into your project schedules.
250 |
251 |
252 |
253 |
254 |
274 |
275 |
276 |
277 |
--------------------------------------------------------------------------------
/src/code-nasa-invalid.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
21 |
22 |
27 |
28 |
29 |
34 |
35 |
--------------------------------------------------------------------------------
/src/code-nasa-projects.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
142 |
143 |
144 |
145 |
code.nasa.gov
146 |
147 |
148 |
149 |
150 |
151 | [[matchedProjects.length]] NASA Open Source Software [[_pluralize('Project', matchedProjects.length)]] match query
152 |
158 |
159 | Show all projects
160 |
161 |
162 |
163 |
164 | This is a catalog of Open Source NASA code that has received SRA approval
165 |
166 |
167 |
168 |
169 | A.I. generated tags are predicted using a natural language processing model applied to project descriptons. Tags come from 8000 NASA concepts tracked in 3.5 million published reports and papers by NASA's Scientific and Technical Information Program . Accuracy is not guaranteed. Click on a tag to see all projects with that tag.
170 |
171 |
172 |
173 |
174 | The human-generated tag "usg-artificial-intelligence" is established by the US Office of Management and Budget (OMB) to help the public find A.I. code for reuse across all federal agencies.
175 |
176 |
177 |
178 |
179 |
180 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
347 |
348 |
349 |
--------------------------------------------------------------------------------
/src/code-nasa-related.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
73 |
74 |
75 |
76 |
77 | Related
78 | Resources
79 |
80 |
81 |
82 |
88 |
89 |
90 |
91 |
92 | Not all releasable code is open-source code. NASA also has government source code that is only sharable with other US government agencies. If you don't find what you're looking for among the open-source on code.nasa.gov, check out Software.NASA.Gov , which is run by the Technology Transfer office and has government source code in addition to open source software.
93 |
94 |
95 |
96 |
97 |
98 | DASHlink is a collaborative sharing network for researchers in the Data Mining and Systems Health fields. On DASHlink you can create a public member profile, share papers, algorithms, and datasets, and utilize tools like wikis and blogs to collaborate.
99 |
100 |
101 |
102 |
103 |
104 | NASA has several programs for putting out data analysis and technology development contests and challenges to public. Centennial Challenge Program, NASA Tournament Lab, Challenge.gov, and NASA’s Center of Excellence for Collaborative Innovation are linked to from this page.
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 | Code & Data For This Site
114 |
115 |
116 |
117 |
118 |
119 |
120 | If you would like to interact with the data on this page through an API, we suggest you check out the code.gov API . You can programmatically interact with all NASA open-source projects & open-source code from every federal agency.
121 |
122 |
123 |
124 |
125 |
126 | The projects page of code.nasa.gov is built from data in catalog.json , available on github. NASA projects on code.gov are harvested from code.JSON , also on github. You can interact with both here inside a live Observable code notebook editable in JavaScript.
127 |
128 |
129 |
130 |
131 |
132 | If you find a mistake on this page, you can submit a change by contributing an issue or pull request to the public github repository that holds this page's source code. If you find any mistakes in the `A.I. generated tags` on this website's projects page , we'd like to know about it.
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
--------------------------------------------------------------------------------
/src/code-nasa-share.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
71 |
72 |
73 |
74 |
75 | Share
76 | your Code
77 |
78 |
79 |
80 |
81 |
NASA developers:
82 |
83 | Thanks for your interest in sharing your code! If you are a developer employed by NASA or a
84 | NASA contractor and have open source code you wish to host on the NASA GitHub repository, check out the guide page or email us at opensource@lists.nasa.gov .
85 |
86 |
87 |
88 |
89 |
Non-NASA affiliates:
90 |
91 | We encourage
92 | you to clone, fork, modify, break, and improve the code that we've released thus far.
93 | We're still working out the proper methods to take user contributions to our code and
94 | will provide information on how to do so as it develops.
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/src/code-nasa-tagcluster.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | NASA Open Source Software
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
174 |
179 |
180 |
181 |
This notebook was created as an alternative way to interact with the data on code.nasa.gov. It is an experiment!
182 |
This link will take you to the original Observable Notebook which is forkable, live, and editable.
183 |
Each of the code project's descriptions was run through a natural language processing model and higher-order concept tags predicted. Training data for this machine-learning model came from NASA's Science Technology and Information program database of published abstracts .
184 |
This page explores how we might use those tags to quickly explore what code projects NASA has released to the public, without having to read through 500+ project descriptions.
185 |
186 |
187 |
188 |
198 |
199 |
200 | Tag circles are scaled by number of times that concept tag was predicted by natural langauge processing (NLP) model as representative for a code project. Only tags found in the code project clusters highlighted below are shown in the tag bubbles.
201 |
202 |
203 |
204 |
206 |
209 |
210 |
211 |
Limit tags by frequency
212 |
213 |
214 |
215 |
218 |
219 |
220 |
221 |
Each line above represents a cluster of code projects that was tagged with similar concept tags. The tags on each line are the tags found to be most representative of each code project cluster.
222 | Select a cluster of code projects and both the bubble chart of tags above and list of code project names below will only reflect selected code projects.
223 |
224 |
225 |
226 |
227 |
228 | Scroll to see all the Projects within selected cluster(s), click to learn more about a project:
229 |
230 |
231 |
232 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
251 |
255 |
327 |
328 |
329 |
330 |
331 |
--------------------------------------------------------------------------------
/src/images/backgrounds/guide.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/backgrounds/guide.jpg
--------------------------------------------------------------------------------
/src/images/backgrounds/projects-bottom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/backgrounds/projects-bottom.jpg
--------------------------------------------------------------------------------
/src/images/backgrounds/projects.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/backgrounds/projects.jpg
--------------------------------------------------------------------------------
/src/images/backgrounds/share.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/backgrounds/share.jpg
--------------------------------------------------------------------------------
/src/images/down-arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/downloadSince.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/downloadSince.png
--------------------------------------------------------------------------------
/src/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/favicon.ico
--------------------------------------------------------------------------------
/src/images/forc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/forc.png
--------------------------------------------------------------------------------
/src/images/fork.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/fork.jpg
--------------------------------------------------------------------------------
/src/images/laborHours.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/laborHours.png
--------------------------------------------------------------------------------
/src/images/logos/nasa-144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/logos/nasa-144.png
--------------------------------------------------------------------------------
/src/images/logos/nasa-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/logos/nasa-192.png
--------------------------------------------------------------------------------
/src/images/logos/nasa-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/logos/nasa-48.png
--------------------------------------------------------------------------------
/src/images/logos/nasa-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/logos/nasa-512.png
--------------------------------------------------------------------------------
/src/images/logos/nasa-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/logos/nasa-72.png
--------------------------------------------------------------------------------
/src/images/logos/nasa-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/logos/nasa-96.png
--------------------------------------------------------------------------------
/src/images/obs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/obs.png
--------------------------------------------------------------------------------
/src/images/popular_code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/popular_code.png
--------------------------------------------------------------------------------
/src/images/tag_bubble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/code-nasa-gov/360496821c05cfcdd282067e7435033daad88597/src/images/tag_bubble.png
--------------------------------------------------------------------------------
/src/observablecode-import.html:
--------------------------------------------------------------------------------
1 |
33 |
--------------------------------------------------------------------------------
/src/shared-styles.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/sw-precache-config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @license
3 | * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
4 | * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5 | * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6 | * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7 | * Code distributed by Google as part of the polymer project is also
8 | * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9 | */
10 | module.exports = {
11 | staticFileGlobs: [
12 | '/index.html',
13 | '/manifest.json',
14 | '/bower_components/webcomponentsjs/webcomponents-lite.min.js',
15 | '/images/**/*',
16 | '/data/*',
17 | '/fonts/*'
18 | ],
19 | navigateFallback: '/index.html'
20 | };
21 |
--------------------------------------------------------------------------------
/yarn-error.log:
--------------------------------------------------------------------------------
1 | Arguments:
2 | /usr/local/bin/node /Users/etyates/.yarn/bin/yarn.js add bower polymer-cli
3 |
4 | PATH:
5 | /Users/etyates/.yarn/bin:/Users/etyates/.config/yarn/global/node_modules/.bin:/Users/etyates/anaconda3/bin:/Users/etyates/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/etyates/me/Applications/Sublime Text.app/Contents/SharedSupport/bin:/Users/etyates/Library/Python/2.7/bin:/Users/etyates/bin:/Users/etyates/.npm-global/bin
6 |
7 | Yarn version:
8 | 1.17.3
9 |
10 | Node version:
11 | 10.16.3
12 |
13 | Platform:
14 | darwin x64
15 |
16 | Trace:
17 | Error: EACCES: permission denied, mkdir '/Users/etyates/src/github/code-nasa-gov/node_modules/clean-css/node_modules/source-map'
18 |
19 | npm manifest:
20 | No manifest
21 |
22 | yarn manifest:
23 | No manifest
24 |
25 | Lockfile:
26 | No lockfile
27 |
--------------------------------------------------------------------------------