Initial commit from Gomix.
This commit is contained in:
		
							parent
							
								
									fa420da4d3
								
							
						
					
					
						commit
						13dd4b6376
					
				
							
								
								
									
										2
									
								
								.gitconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitconfig
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					[core]
 | 
				
			||||||
 | 
						excludesfile = /etc/.gitignore-global
 | 
				
			||||||
							
								
								
									
										58
									
								
								.hyperdev-assets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								.hyperdev-assets
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					{"name":"drag-in-files-copy.svg","date":"2016-03-16T18:27:31.021Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files-copy.svg","type":"image/svg+xml","size":6229,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files-copy.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"tkviVwlaQ2RryM4r"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-16T18:21:25.984Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":7990,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"Pr0LH5dpGcRJ2QSU"}
 | 
				
			||||||
 | 
					{"name":"click-for-details.svg","date":"2016-03-16T18:21:23.511Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","type":"image/svg+xml","size":6408,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"nuMndaSEzn2KoNFG"}
 | 
				
			||||||
 | 
					{"name":"use-url.svg","date":"2016-03-16T18:21:20.130Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","type":"image/svg+xml","size":6155,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(44,180,188)","uuid":"LiyD5Lxg8FrmZlhz"}
 | 
				
			||||||
 | 
					{"name":"click-for-details.svg","date":"2016-03-16T18:20:57.943Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","type":"image/svg+xml","size":6408,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"04MB8gA2GPoSJ7pp"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-16T18:20:56.379Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":7990,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"q8Au1vYvVFpuGd5b"}
 | 
				
			||||||
 | 
					{"name":"use-url.svg","date":"2016-03-16T18:20:52.651Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","type":"image/svg+xml","size":6155,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(44,180,188)","uuid":"9FiKvjvvr4C3oG0i"}
 | 
				
			||||||
 | 
					{"name":"1.svg","date":"2016-03-16T18:18:11.204Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2F1.svg","type":"image/svg+xml","size":20524,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2F1.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"MR02bReHwXODf2iH"}
 | 
				
			||||||
 | 
					{"name":"2.svg","date":"2016-03-16T18:18:09.776Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2F2.svg","type":"image/svg+xml","size":6597,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2F2.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"Q5gjW3biIe5ubDSw"}
 | 
				
			||||||
 | 
					{"name":"3.svg","date":"2016-03-16T18:18:08.145Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2F3.svg","type":"image/svg+xml","size":6856,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2F3.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(44,180,188)","uuid":"ZtH2QDmOOe11lCXh"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-16T18:15:33.737Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":7990,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"5ZhCFJBZeljgrOsm"}
 | 
				
			||||||
 | 
					{"name":"click-for-details.svg","date":"2016-03-16T18:15:31.732Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","type":"image/svg+xml","size":6408,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"j9DYGSrBdfoh5Qgf"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-16T18:13:11.062Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":7990,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"xs11lHNV40rcZiOr"}
 | 
				
			||||||
 | 
					{"name":"click-for-details.svg","date":"2016-03-16T18:13:07.869Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","type":"image/svg+xml","size":6397,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"oDrtrMLQDzHj3fCi"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-16T18:12:09.577Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":7990,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"QZQEhdAJwQlN15xh"}
 | 
				
			||||||
 | 
					{"name":"click-for-details.svg","date":"2016-03-16T18:12:06.958Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","type":"image/svg+xml","size":6395,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"4DsIsyOkpGM5vhnm"}
 | 
				
			||||||
 | 
					{"name":"use-url.svg","date":"2016-03-16T18:12:02.187Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","type":"image/svg+xml","size":6155,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(44,180,188)","uuid":"2D0DVLCP7wUxzaXm"}
 | 
				
			||||||
 | 
					{"name":"click-for-details.svg","date":"2016-03-16T18:11:49.564Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","type":"image/svg+xml","size":6395,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"ellCYXezSjscGSrr"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-16T18:11:44.256Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":7990,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"96WPtGmfDbGjk1Cq"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-16T18:11:25.392Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":7990,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"w2iCDrwXU3boaMb0"}
 | 
				
			||||||
 | 
					{"uuid":"w2iCDrwXU3boaMb0","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"ellCYXezSjscGSrr","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"96WPtGmfDbGjk1Cq","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"4DsIsyOkpGM5vhnm","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"QZQEhdAJwQlN15xh","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"oDrtrMLQDzHj3fCi","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"xs11lHNV40rcZiOr","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"5ZhCFJBZeljgrOsm","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"j9DYGSrBdfoh5Qgf","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"2D0DVLCP7wUxzaXm","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"04MB8gA2GPoSJ7pp","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"q8Au1vYvVFpuGd5b","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"MR02bReHwXODf2iH","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"9FiKvjvvr4C3oG0i","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"ZtH2QDmOOe11lCXh","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"Q5gjW3biIe5ubDSw","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"Pr0LH5dpGcRJ2QSU","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"tkviVwlaQ2RryM4r","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"LiyD5Lxg8FrmZlhz","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"nuMndaSEzn2KoNFG","deleted":true}
 | 
				
			||||||
 | 
					{"name":"use-url.svg","date":"2016-03-29T18:22:42.337Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","type":"image/svg+xml","size":12848,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(44,180,188)","uuid":"BPzdWy4z8l1Yn4EQ"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-29T18:22:44.084Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":14823,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"VQVhKMzbgQcBopQk"}
 | 
				
			||||||
 | 
					{"uuid":"BPzdWy4z8l1Yn4EQ","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"VQVhKMzbgQcBopQk","deleted":true}
 | 
				
			||||||
 | 
					{"name":"click-for-details.svg","date":"2016-03-29T18:22:55.141Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","type":"image/svg+xml","size":12623,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"QTRGE6XDqUiSoYO9"}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-29T18:22:57.596Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":14823,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"RS7rnVaX9eGP4Lri"}
 | 
				
			||||||
 | 
					{"uuid":"RS7rnVaX9eGP4Lri","deleted":true}
 | 
				
			||||||
 | 
					{"uuid":"QTRGE6XDqUiSoYO9","deleted":true}
 | 
				
			||||||
 | 
					{"name":"drag-in-files.svg","date":"2016-03-29T18:23:08.746Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","type":"image/svg+xml","size":14823,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fdrag-in-files.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(100,156,204)","uuid":"fxoJRXwNdZeThuNz"}
 | 
				
			||||||
 | 
					{"name":"click-for-details.svg","date":"2016-03-29T18:23:10.422Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","type":"image/svg+xml","size":12623,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fclick-for-details.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(244,188,188)","uuid":"Lp2si7Cpft2ktNM4"}
 | 
				
			||||||
 | 
					{"name":"use-url.svg","date":"2016-03-29T18:23:12.439Z","url":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","type":"image/svg+xml","size":12848,"imageWidth":276,"imageHeight":276,"thumbnail":"https://s3.amazonaws.com/hyperweb-editor-assets/us-east-1%3Ad0d03a8e-22bf-451d-ba15-f08d8f4e99ba%2Fuse-url.svg","thumbnailWidth":276,"thumbnailHeight":276,"dominantColor":"rgb(44,180,188)","uuid":"EjI8Y9wdZ9DEXI17"}
 | 
				
			||||||
 | 
					{"name":"ts.png","date":"2016-07-29T20:12:54.081Z","url":"https://cdn.hyperdev.com/us-east-1%3A52a203ff-088b-420f-81be-45bf559d01b1%2Fts.png","type":"image/png","size":51415,"imageWidth":300,"imageHeight":300,"thumbnail":"https://cdn.hyperdev.com/us-east-1%3A52a203ff-088b-420f-81be-45bf559d01b1%2Fts.png","thumbnailWidth":300,"thumbnailHeight":300,"dominantColor":null,"uuid":"KkT0yh4eO6qQ0IoB"}
 | 
				
			||||||
 | 
					{"name":"favicon.ico","date":"2016-07-29T20:16:10.860Z","url":"https://cdn.hyperdev.com/us-east-1%3A52a203ff-088b-420f-81be-45bf559d01b1%2Ffavicon.ico","type":"image/vnd.microsoft.icon","size":3262,"imageWidth":32,"imageHeight":32,"thumbnail":"https://cdn.hyperdev.com/us-east-1%3A52a203ff-088b-420f-81be-45bf559d01b1%2Ffavicon.ico","thumbnailWidth":32,"thumbnailHeight":32,"dominantColor":"rgb(202,221,202)","uuid":"D1EJusUtfCMrDlM2"}
 | 
				
			||||||
 | 
					{"uuid":"KkT0yh4eO6qQ0IoB","deleted":true}
 | 
				
			||||||
 | 
					{"name":"logo.png","date":"2016-07-29T20:36:52.799Z","url":"https://cdn.hyperdev.com/us-east-1%3A6a03d0e1-65b6-4b61-95cb-e479fe48c93b%2Flogo.png","type":"image/png","size":17058,"imageWidth":300,"imageHeight":300,"thumbnail":"https://cdn.hyperdev.com/us-east-1%3A6a03d0e1-65b6-4b61-95cb-e479fe48c93b%2Flogo.png","thumbnailWidth":300,"thumbnailHeight":300,"dominantColor":null,"uuid":"t52kqiom00fjF7RI"}
 | 
				
			||||||
 | 
					{"uuid":"t52kqiom00fjF7RI","deleted":true}
 | 
				
			||||||
 | 
					{"name":"logo.png","date":"2016-07-29T21:00:29.508Z","url":"https://cdn.hyperdev.com/us-east-1%3A29c0cbbb-c421-402b-86fb-7ac41eee893c%2Flogo.png","type":"image/png","size":28116,"imageWidth":300,"imageHeight":300,"thumbnail":"https://cdn.hyperdev.com/us-east-1%3A29c0cbbb-c421-402b-86fb-7ac41eee893c%2Flogo.png","thumbnailWidth":300,"thumbnailHeight":300,"dominantColor":null,"uuid":"rjG1lKrU35W953So"}
 | 
				
			||||||
 | 
					{"uuid":"rjG1lKrU35W953So","deleted":true}
 | 
				
			||||||
							
								
								
									
										23
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								README.md
									
									
									
									
									
								
							@ -1,2 +1,21 @@
 | 
				
			|||||||
# boilerplate-project-urlshortener
 | 
					# API Project: URL Shortener Microservice for freeCodeCamp
 | 
				
			||||||
A boilerplate for a freeCodeCamp project.
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### User Stories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. I can POST a URL to `[project_url]/api/shorturl/new` and I will receive a shortened URL in the JSON response. Example : `{"original_url":"www.google.com","short_url":1}`
 | 
				
			||||||
 | 
					2. If I pass an invalid URL that doesn't follow the valid `http(s)://www.example.com(/more/routes)` format, the JSON response will contain an error like `{"error":"invalid URL"}`. *HINT*: to be sure that the submitted url points to a valid site you can use the function `dns.lookup(host, cb)` from the `dns` core module.
 | 
				
			||||||
 | 
					3. When I visit the shortened URL, it will redirect me to my original link.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Creation Example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					POST [project_url]/api/shorturl/new - body (urlencoded) :  url=https://www.google.com
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Usage:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[this_project_url]/api/shorturl/3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Will redirect to:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					http://forum.freecodecamp.com
 | 
				
			||||||
							
								
								
									
										29
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
						"name": "shorturl",
 | 
				
			||||||
 | 
						"version": "0.0.1",
 | 
				
			||||||
 | 
						"description": "API project for freeCodeCamp",
 | 
				
			||||||
 | 
						"main": "server.js",
 | 
				
			||||||
 | 
						"scripts": {
 | 
				
			||||||
 | 
							"start": "node server.js"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						"dependencies": {
 | 
				
			||||||
 | 
							"express": "^5.0.0-alpha.2",
 | 
				
			||||||
 | 
							"mongodb": "^2.2.5",
 | 
				
			||||||
 | 
							"mongoose": "^4.5.7",
 | 
				
			||||||
 | 
							"cors": "^2.8.1",
 | 
				
			||||||
 | 
							"body-parser": "^1.15.2"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						"engines": {
 | 
				
			||||||
 | 
							"node": "4.4.5"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						"repository": {
 | 
				
			||||||
 | 
							"type": "git",
 | 
				
			||||||
 | 
							"url": "https://hyperdev.com/#!/project/welcome-project"
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						"keywords": [
 | 
				
			||||||
 | 
							"node",
 | 
				
			||||||
 | 
							"hyperdev",
 | 
				
			||||||
 | 
							"express"
 | 
				
			||||||
 | 
						],
 | 
				
			||||||
 | 
						"license": "MIT"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										74
									
								
								public/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								public/style.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					/****** Main Styling ******/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body {
 | 
				
			||||||
 | 
						font-family: 'Roboto', sans-serif;
 | 
				
			||||||
 | 
						font-size: 16px;
 | 
				
			||||||
 | 
						color: #222;
 | 
				
			||||||
 | 
						background-color: #FaFaFa;
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
						line-height: 1.4em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.container {
 | 
				
			||||||
 | 
						padding: 0;
 | 
				
			||||||
 | 
						margin-top: 40px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h3 {
 | 
				
			||||||
 | 
					  margin-top: 30px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.footer {
 | 
				
			||||||
 | 
						margin-top: 40px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.user-stories {
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					  text-align: justify;
 | 
				
			||||||
 | 
					  max-width: 700px;
 | 
				
			||||||
 | 
					  margin: 15px auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					code {
 | 
				
			||||||
 | 
					  font-family: monospace;
 | 
				
			||||||
 | 
					  padding: 2px;
 | 
				
			||||||
 | 
					  color: black;
 | 
				
			||||||
 | 
					  background-color: #fff;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					ol {
 | 
				
			||||||
 | 
						list-style-position: inside;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					ul {
 | 
				
			||||||
 | 
						list-style-type: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					li {
 | 
				
			||||||
 | 
					  margin-bottom: 0.5em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.user-stories li {
 | 
				
			||||||
 | 
					  margin-bottom: 1em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					a {
 | 
				
			||||||
 | 
						color: #2574A9;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					form {
 | 
				
			||||||
 | 
					  border: solid 1px black;
 | 
				
			||||||
 | 
					  border-radius: 5px;
 | 
				
			||||||
 | 
					  margin: 10px auto;
 | 
				
			||||||
 | 
					  padding: 20px;
 | 
				
			||||||
 | 
					  max-width: 600px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label {
 | 
				
			||||||
 | 
					  margin-right: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input {
 | 
				
			||||||
 | 
					  padding: 5px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input[type=text] {
 | 
				
			||||||
 | 
					  width: 220px;
 | 
				
			||||||
 | 
					  text-align: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										37
									
								
								server.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								server.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					'use strict';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var express = require('express');
 | 
				
			||||||
 | 
					var mongo = require('mongodb');
 | 
				
			||||||
 | 
					var mongoose = require('mongoose');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var cors = require('cors');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var app = express();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Basic Configuration 
 | 
				
			||||||
 | 
					var port = process.env.PORT || 3000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** this project needs a db !! **/ 
 | 
				
			||||||
 | 
					// mongoose.connect(process.env.MONGOLAB_URI);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.use(cors());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** this project needs to parse POST bodies **/
 | 
				
			||||||
 | 
					// you should mount the body-parser here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.use('/public', express.static(process.cwd() + '/public'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.get('/', function(req, res){
 | 
				
			||||||
 | 
					  res.sendFile(process.cwd() + '/views/index.html');
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					// your first API endpoint... 
 | 
				
			||||||
 | 
					app.get("/api/hello", function (req, res) {
 | 
				
			||||||
 | 
					  res.json({greeting: 'hello API'});
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.listen(port, function () {
 | 
				
			||||||
 | 
					  console.log('Node.js listening ...');
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
							
								
								
									
										48
									
								
								views/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								views/index.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   <head>
 | 
				
			||||||
 | 
					      <title>URL Shortener</title>
 | 
				
			||||||
 | 
					      <link rel="shortcut icon" href="https://cdn.hyperdev.com/us-east-1%3A52a203ff-088b-420f-81be-45bf559d01b1%2Ffavicon.ico" type="image/x-icon"/>
 | 
				
			||||||
 | 
					      <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css">
 | 
				
			||||||
 | 
					      <link href="/public/style.css" rel="stylesheet" type="text/css">
 | 
				
			||||||
 | 
					   </head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   <body>
 | 
				
			||||||
 | 
					      <div class="container">
 | 
				
			||||||
 | 
					        <h2>API Project: URL Shortener Microservice</h2>
 | 
				
			||||||
 | 
					        <h3>User Story: </h3>
 | 
				
			||||||
 | 
					        <ol>
 | 
				
			||||||
 | 
					          <li>I can POST a URL to <code>[project_url]/api/shorturl/new</code> and I will receive a shortened URL in the JSON response.<br>Example : <code>{"original_url":"www.google.com","short_url":1}</code></li>
 | 
				
			||||||
 | 
					          <li>If I pass an invalid URL that doesn't follow the <code>http(s)://www.example.com(/more/routes)</code> format, the JSON response will contain an error like <code>{"error":"invalid URL"}</code><br>
 | 
				
			||||||
 | 
					          HINT: to be sure that the submitted url points to a valid site you can use the function <code>dns.lookup(host, cb)</code> from the <code>dns</code> core module.</li>
 | 
				
			||||||
 | 
					          <li>When I visit the shortened URL, it will redirect me to my original link.</li>
 | 
				
			||||||
 | 
					        </ol>
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        <h3>Short URL Creation </h3>
 | 
				
			||||||
 | 
					        <p>
 | 
				
			||||||
 | 
					          example: <code>POST [project_url]/api/shorturl/new</code> - <code>https://www.google.com</code>
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					        <form action="api/shorturl/new" method="POST">
 | 
				
			||||||
 | 
					          <label for="url_input">URL to be shortened</label>
 | 
				
			||||||
 | 
					          <input id="url_input" type="text" name="url" value="https://www.freecodecamp.com">
 | 
				
			||||||
 | 
					          <input type="submit" value="POST URL">
 | 
				
			||||||
 | 
					        </form>
 | 
				
			||||||
 | 
					        <h3>Example Usage:</h3>
 | 
				
			||||||
 | 
					        <a href="https://thread-paper.hyperdev.space/api/shorturl/3">
 | 
				
			||||||
 | 
					          [this_project_url]/api/shorturl/3
 | 
				
			||||||
 | 
					        </a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <h3>Will Redirect to:</h3>
 | 
				
			||||||
 | 
					        <p>https://forum.freecodecamp.com</p>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="footer">
 | 
				
			||||||
 | 
					        <p>
 | 
				
			||||||
 | 
					          by <a href="http://www.freecodecamp.com">freeCodeCamp</a>
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					   </body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user