mirror of
				https://codeberg.org/buzzcode2007/FCC-Project-URLShortener.git
				synced 2025-05-21 03:06:34 +00:00 
			
		
		
		
	Merge pull request #23 from scissorsneedfoodtoo/feat/cleanup-glitch-assets-and-add-files
feat: clean up glitch assets and add files
This commit is contained in:
		
						commit
						f091da64e9
					
				
					 12 changed files with 1047 additions and 404 deletions
				
			
		|  | @ -1,2 +0,0 @@ | ||||||
| [core] |  | ||||||
| 	excludesfile = /etc/.gitignore-global |  | ||||||
							
								
								
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | .vscode/* | ||||||
|  | .env | ||||||
|  | node_modules/ | ||||||
|  | @ -1,58 +0,0 @@ | ||||||
| {"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} |  | ||||||
							
								
								
									
										2
									
								
								.replit
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								.replit
									
										
									
									
									
								
							|  | @ -1,2 +1,2 @@ | ||||||
| language = "nodejs" | language = "nodejs" | ||||||
| run = "npm start" | run = "npm run dev" | ||||||
							
								
								
									
										23
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								README.md
									
										
									
									
									
								
							|  | @ -1,22 +1 @@ | ||||||
| # API Project: URL Shortener Microservice for freeCodeCamp | # [URL Shortener Microservice](https://www.freecodecamp.org/learn/apis-and-microservices/apis-and-microservices-projects/url-shortener-microservice) | ||||||
| 
 |  | ||||||
| [](https://repl.it/github/freeCodeCamp/boilerplate-project-urlshortener) |  | ||||||
| 
 |  | ||||||
| ### 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.freecodecamp.org/forum/ |  | ||||||
| 
 |  | ||||||
| #### Usage: |  | ||||||
| 
 |  | ||||||
| [this_project_url]/api/shorturl/3 |  | ||||||
| 
 |  | ||||||
| #### Will redirect to: |  | ||||||
| 
 |  | ||||||
| https://www.freecodecamp.org/forum/ |  | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								nodemon.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								nodemon.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | { | ||||||
|  |   "restartable": "rs", | ||||||
|  |   "ignore": [ | ||||||
|  |       ".git", | ||||||
|  |       "node_modules/**/node_modules" | ||||||
|  |   ], | ||||||
|  |   "verbose": true, | ||||||
|  |   "env": { | ||||||
|  |       "NODE_ENV": "development" | ||||||
|  |   }, | ||||||
|  |   "ext": "js,json,html,css", | ||||||
|  |   "delay": "2500" | ||||||
|  | } | ||||||
							
								
								
									
										1146
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										1146
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										24
									
								
								package.json
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								package.json
									
										
									
									
									
								
							|  | @ -4,26 +4,20 @@ | ||||||
|   "description": "API project for freeCodeCamp", |   "description": "API project for freeCodeCamp", | ||||||
|   "main": "server.js", |   "main": "server.js", | ||||||
|   "scripts": { |   "scripts": { | ||||||
| 		"start": "node server.js" |     "start": "node server.js", | ||||||
|  |     "dev": "nodemon server.js" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
| 		"express": "^4.17.1", |     "body-parser": "^1.19.0", | ||||||
| 		"mongodb": "^3.5.9", |  | ||||||
| 		"mongoose": "^5.9.27", |  | ||||||
|     "cors": "^2.8.5", |     "cors": "^2.8.5", | ||||||
| 		"body-parser": "^1.19.0" |     "dotenv": "^8.2.0", | ||||||
|  |     "express": "^4.17.1" | ||||||
|   }, |   }, | ||||||
|   "engines": { |   "engines": { | ||||||
|     "node": "12.18.3" |     "node": "12.18.3" | ||||||
|   }, |   }, | ||||||
| 	"repository": { |   "license": "MIT", | ||||||
| 		"type": "git", |   "devDependencies": { | ||||||
| 		"url": "https://hyperdev.com/#!/project/welcome-project" |     "nodemon": "^2.0.4" | ||||||
| 	}, |   } | ||||||
| 	"keywords": [ |  | ||||||
| 		"node", |  | ||||||
| 		"hyperdev", |  | ||||||
| 		"express" |  | ||||||
| 	], |  | ||||||
| 	"license": "MIT" |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,15 +1,13 @@ | ||||||
| /****** Main Styling ******/ |  | ||||||
| 
 |  | ||||||
| body { | body { | ||||||
| 	font-family: 'Roboto', sans-serif; |   font-family: Arial, sans-serif; | ||||||
|   font-size: 16px; |   font-size: 16px; | ||||||
|   color: #222; |   color: #222; | ||||||
| 	background-color: #FaFaFa; |   background-color: #fff; | ||||||
|   text-align: center; |   text-align: center; | ||||||
|   line-height: 1.4em; |   line-height: 1.4em; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .container { | main { | ||||||
|   padding: 0; |   padding: 0; | ||||||
|   margin-top: 40px; |   margin-top: 40px; | ||||||
| } | } | ||||||
|  | @ -18,43 +16,17 @@ h3 { | ||||||
|   margin-top: 30px; |   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 { | .user-stories li { | ||||||
|   margin-bottom: 1em; |   margin-bottom: 1em; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| a { | a { | ||||||
| 	color: #2574A9; |   color: #2574a9; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| form { | form { | ||||||
|   border: solid 1px black; |  | ||||||
|   border-radius: 5px; |  | ||||||
|   margin: 10px auto; |   margin: 10px auto; | ||||||
|   padding: 20px; |   padding: 20px; | ||||||
|   max-width: 600px; |   max-width: 600px; | ||||||
|  | @ -68,7 +40,7 @@ input { | ||||||
|   padding: 5px; |   padding: 5px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| input[type=text] { | input[type='text'] { | ||||||
|   width: 220px; |   width: 220px; | ||||||
|   text-align: center; |   text-align: center; | ||||||
| } | } | ||||||
							
								
								
									
										2
									
								
								sample.env
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								sample.env
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | ||||||
|  | PORT= | ||||||
|  | DB_URI= | ||||||
							
								
								
									
										32
									
								
								server.js
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								server.js
									
										
									
									
									
								
							|  | @ -1,36 +1,24 @@ | ||||||
| 'use strict'; | require('dotenv').config(); | ||||||
| 
 | const express = require('express'); | ||||||
| const express = require('express'), | const cors = require('cors'); | ||||||
|       mongo = require('mongodb'), | const app = express(); | ||||||
|       mongoose = require('mongoose'), |  | ||||||
|       cors = require('cors'), |  | ||||||
|       app = express(); |  | ||||||
| 
 | 
 | ||||||
| // Basic Configuration
 | // Basic Configuration
 | ||||||
| const port = process.env.PORT || 3000; | const port = process.env.PORT || 3000; | ||||||
| 
 | 
 | ||||||
| /** this project needs a db !! **/  |  | ||||||
| mongoose.connect(process.env.MONGOLAB_URI, { useMongoClient: true }); |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| app.use(cors()); | 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.use('/public', express.static(`${process.cwd()}/public`)); | ||||||
| 
 | 
 | ||||||
| app.get('/', (req, res) => { | app.get('/', function(req, res) { | ||||||
|   res.sendFile(`${process.cwd()}/views/index.html`); |   res.sendFile(process.cwd() + '/views/index.html'); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
|    | // Your first API endpoint
 | ||||||
| // your first API endpoint... 
 | app.get('/api/hello', function(req, res) { | ||||||
| app.get("/api/hello", (req, res) => { |  | ||||||
|   res.json({ greeting: 'hello API' }); |   res.json({ greeting: 'hello API' }); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| 
 | app.listen(port, function() { | ||||||
| app.listen(port, () => { |   console.log(`Listening on port ${port}`); | ||||||
|   console.log('Node.js listening ...'); |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -1,48 +1,32 @@ | ||||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||||
| 
 | 
 | ||||||
| <html> | <html> | ||||||
| 
 |  | ||||||
|   <head> |   <head> | ||||||
|       <title>URL Shortener</title> |     <title>URL Shortener Microservice | freeCodeCamp.org</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 | ||||||
|       <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css"> |       rel="icon"  | ||||||
|       <link href="/public/style.css" rel="stylesheet" type="text/css"> |       type="image/png"  | ||||||
|  |       href="https://cdn.freecodecamp.org/universal/favicons/favicon-16x16.png" | ||||||
|  |     /> | ||||||
|  |     <link href="/public/style.css" rel="stylesheet" type="text/css" /> | ||||||
|   </head> |   </head> | ||||||
| 
 | 
 | ||||||
|   <body> |   <body> | ||||||
|       <div class="container"> |     <h1>URL Shortener Microservice</h1> | ||||||
|         <h2>API Project: URL Shortener Microservice</h2> |     <main> | ||||||
|         <h3>User Story: </h3> |       <section> | ||||||
|         <ol> |  | ||||||
|           <li>I can <b>POST</b> a <b>URL</b> to <code>[project_url]/api/shorturl/new</code> and I will receive a shortened <b>URL</b> in the JSON response.<br><br><i>Example</i> : <code>{"original_url":"www.google.com","short_url":1}</code></li><br><br> |  | ||||||
|           <li>If I pass an <b>invalid URL</b> 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><br> |  | ||||||
|           <b><i>HINT</i></b>: 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. Incase you are new to NodeJs, you can learn about this function from its documentation.(<a href="https://nodejs.org/api/dns.html">NodeJs Documentation</a>)</li><br><br> |  | ||||||
|           <li>When I visit the shortened URL, it will redirect me to my original link.</li><br> |  | ||||||
|         </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"> |         <form action="api/shorturl/new" method="POST"> | ||||||
|           <label for="url_input">URL to be shortened</label> |           <fieldset> | ||||||
|           <input id="url_input" type="text" name="url" value="https://www.freecodecamp.org"> |             <legend>URL Shortener</legend> | ||||||
|           <input type="submit" value="POST URL"> |             <label for="url_input">URL:</label> | ||||||
|  |             <input id="url_input" type="text" name="url" placeholder="https://www.freecodecamp.org/" /> | ||||||
|  |             <input type="submit" value="POST URL" /> | ||||||
|  |           </fieldset> | ||||||
|         </form> |         </form> | ||||||
|         <h3>Example Usage:</h3> |       </section> | ||||||
|         <a href="https://url-shortener.freecodecamp.repl.co/api/shorturl/3"> |     </main> | ||||||
|           [this_project_url]/api/shorturl/3 |     <footer> | ||||||
|         </a> |       <p>By <a href="https://www.freecodecamp.org/">freeCodeCamp</a></p> | ||||||
| 
 |     </footer> | ||||||
|         <h3>Will Redirect to:</h3> |  | ||||||
|         <p>https://forum.freecodecamp.org/</p> |  | ||||||
|       </div> |  | ||||||
|       <div class="footer"> |  | ||||||
|         <p> |  | ||||||
|           by <a href="https://www.freecodecamp.org">freeCodeCamp</a> |  | ||||||
|         </p> |  | ||||||
|       </div> |  | ||||||
|   </body> |   </body> | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| </html> | </html> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue