diff --git a/.firebase/hosting.ZnJvbnRlbmQvYnVpbGQ.cache b/.firebase/hosting.ZnJvbnRlbmQvYnVpbGQ.cache new file mode 100644 index 00000000..6f5ac73e --- /dev/null +++ b/.firebase/hosting.ZnJvbnRlbmQvYnVpbGQ.cache @@ -0,0 +1,43 @@ +manifest.json,1630599707146,6aaf3d87dd9bb1e96f9c691c50d0ed378ed98a120a76dea78291281834cd36e9 +asset-manifest.json,1630599743773,2632b6bfe110dd3ecf9cc203a1476e6003584888f5013e88ff874febfa7b2b8a +index.html,1630599743765,4a54524bfbbe025b5008365aa5e0958e96c8e11655c49e7e23b61d099f088b62 +precache-manifest.f19ddcec3940dbec72c322cd94d3f5b5.js,1630599743766,63657a4990654f98b2435ad06eab68ca549001046c521b09bab633340fadc7f0 +service-worker.js,1630599743766,6c0568e60936367c2aa98f8a032c48f1d1bf6c81486078a73b8914597d71ab02 +favicon.ico,1630599707107,b72f7455f00e4e58792d2bca892abb068e2213838c0316d6b7a0d6d16acd1955 +img/citadel.jpg,1630599707110,c4b06bfedfaa06ab14185753e8ced2895c51ba5c5bd469eb0ea944f773a1a6db +img/kpmg.png,1630599707140,da907cea98ac8eccef0d4d7b61e74124667f465e6e920bf2c44bc701532983f0 +img/projects/geo.png,1630599707142,ba684a1604aede25500bb2958aeb4a904e9a554f3a9f0c313d477bf87567f8c7 +static/css/2.3c1ddb0a.chunk.css,1630599743791,2423b6c56bbf3318ef454b5e4d0088a0360997c33d8dd5f448fdd13bba7c4e32 +static/css/main.4836964d.chunk.css,1630599743761,00279b8b97717053fdeb607341718f7f42e02bffe6baa66eb0d991f2948a3788 +static/css/2.3c1ddb0a.chunk.css.map,1630599743793,198624dd1be6252b8366679ad9ee3167592d70f546660b3ac1a871c1e5a61304 +static/css/main.4836964d.chunk.css.map,1630599743793,c92711ce436cd01411a547cbc3238be8e6189d3d6429e2d2fb27cf0e5cfeea50 +static/js/runtime~main.a8a9905a.js,1630599743763,e1af5f94fdd13901b2e433d0d7607e27c01458151c35b1fe4b7feda2a32b7aa9 +static/js/runtime~main.a8a9905a.js.map,1630599743792,c337bf8b58896da637a6e50ab8cfc779eb1ec42c55f8ec429030a03454a549db +static/media/fynat.9830f052.PNG,1630599743762,04c1f10b673888e5bcaa01d8cca369419a2816646bba77b89fbf04d1f738dfa4 +static/media/hand.bf900d7e.png,1630599743763,a585ea7aa99ccf8e557bc1f0f6317bf9ba3b0cdc515c5dc90cb87ab1c9f39085 +static/media/storm.9d0acc43.PNG,1630599743762,5c3007981be09dcb8bcca817c14392f7cad8d2f54b740d5c3925682067727806 +img/correlationOne.jpg,1630599707111,a7e633864f1329d802ecc2a87c0188d5e413614e81026f78cef167568e887bbb +img/att.png,1630599707109,37a8ea955eabc4d2bb86d24c746bc0351808fb01f5fb75554d300b63bc4aa878 +img/projects/opioid.png,1630599707145,28940e15a66e956e1b1a4d1aafb4fed63067293ee8cbfd237021774f8128dde7 +static/media/search.0cceb4c0.png,1630599743762,d50a917d0c381db8aeb65e3f17e7e62f21fe767dd6f0453d2537f507261d7a3a +static/media/theory.2bfb82e0.png,1630599743763,2c8052b2ca6c77ff15a5953e224102246b3eed452185dc28f05a29c654ae8ca3 +img/projects/kaggle.png,1630599707143,d1d2bc011b52960325635751b053d691b02c1dda97b6619e2fce617ae761b9d2 +static/media/timeline.ad0fbc4a.png,1630599743762,771e16228290f019ad2f7912458f19ef94ba80b8b0015f0cbc5e7910b6db183a +static/js/main.251342c8.chunk.js,1630599743764,29174d5dbc56064a6857bbab723b7f8dd048ebc165bc3bc7203be430016c608c +static/media/Mentra.b30f8a45.png,1630599743762,eac8d626e323e6d5ebb17bea217c89f4c44cd10386742109a160059d5c9108e7 +img/corrone-banner.png,1630599707112,13e0ba27b842b6842f18575cdcb1bc2e39bad868decb354478ff50dd4b901347 +img/gray.png,1630599707128,3e41ecb5d77e34b7f0efd5ef7169eedead481d700706c9f45726086059add7c4 +static/media/background.0a157066.jpg,1630599743764,acab353ed0eb98883ef9adf9ea8be1774fdd76a264c7592c13c929a02f644e8c +img/hacklytics-20-banner-min.png,1630599707130,8da3bef43bf42568a3cedb422879f15d265c08f88b55d111651e9f4254bcb9d8 +img/projects/mentra.png,1630599707145,4c1687d5f4d591b0da73e3b00ac61e2162d648427a98b6af1c4e93df2fb8aa94 +static/media/gears.d60a5a92.png,1630599743760,1fde85fb7c6cf76a9e3613a09b1c52e1c2075a56becd43eba4964da839c80f4f +static/js/main.251342c8.chunk.js.map,1630599743793,eb74b9ffc6c5f9dfcd7399fde9536bede8b2db7ea4f2f629f32c75038e8321ee +img/dsgt-bg.jpg,1630599707114,f090b29922731efdfc4e52651374b078e9fae6a543228521bf1cf75e58a88ffa +static/media/background.bdf66128.jpg,1630599743762,7ce5add20343398937f236a2f7609d6266d8abc1bbbb643c646d384f4bb59658 +img/icon-dark-min.png,1630599707133,2b8f7862e7850ca5ef5f9d1ef4e581e4845b106774f0c88dda044ffdbff68091 +static/js/2.38ca49ba.chunk.js,1630599743792,31fbd00ee3857b3632bc9731c393bb19946a8349c5d45348aa399a65f3234c5d +static/media/icon.455060f2.png,1630599743762,5b13042c83e45511b176ba3e39c43b99f00dacc864e14fd9da1d2cb5c8f9e670 +img/icon.png,1630599707139,5b13042c83e45511b176ba3e39c43b99f00dacc864e14fd9da1d2cb5c8f9e670 +static/media/team.2fbbe1fd.png,1630599743763,ce383b38430658f191c6834a13ac497295fd58d636d6324783c8a60905f9060d +img/dsgt-website-banner-min.png,1630599707124,8fedd07e26ec79b39d932218fc46c746f79281ccebf125c86dfd3162e0cdb9de +static/js/2.38ca49ba.chunk.js.map,1630599743793,31bb3a89ff1d75dee639b58b8b327a294ad4f61a2a6911e39a7fcb637724cad2 diff --git a/.firebase/hosting.cHVibGlj.cache b/.firebase/hosting.cHVibGlj.cache index 6677d094..a4d2d7ca 100644 --- a/.firebase/hosting.cHVibGlj.cache +++ b/.firebase/hosting.cHVibGlj.cache @@ -1,31 +1,31 @@ -asset-manifest.json,1584938576108,9cd21b8d1026b7ac7ca3814f067fdef39133a0eea4b60b8c205c091d9ebf2bba -manifest.json,1584938566341,6aaf3d87dd9bb1e96f9c691c50d0ed378ed98a120a76dea78291281834cd36e9 -favicon.ico,1584938566321,b72f7455f00e4e58792d2bca892abb068e2213838c0316d6b7a0d6d16acd1955 -precache-manifest.f9d665b49d0c9f49b710a57baf6b3602.js,1584938576108,caa89d36f6a3d69bd8abaa67e1015d130267adf0f5af4e7b22e1f91b4a4366aa -index.html,1584938576108,dda12a5b3a5c83f347e91638190241bbc4b5cbb9a444a9b3104fcabc0254dbc3 -service-worker.js,1584938576108,791fbb69500302e1f752cacd1c35a4c20a2ee3466d2d9ca00bd9cf5dd91060fd -img/citadel.jpg,1584938566323,c4b06bfedfaa06ab14185753e8ced2895c51ba5c5bd469eb0ea944f773a1a6db -img/kpmg.png,1584938566340,da907cea98ac8eccef0d4d7b61e74124667f465e6e920bf2c44bc701532983f0 -img/projects/geo.png,1584938566340,ba684a1604aede25500bb2958aeb4a904e9a554f3a9f0c313d477bf87567f8c7 -static/css/2.3c1ddb0a.chunk.css,1584938576136,2423b6c56bbf3318ef454b5e4d0088a0360997c33d8dd5f448fdd13bba7c4e32 -static/css/main.e015bad2.chunk.css,1584938576109,45f160af4b978be4bfec1fb79b9091c670bb43c74aea93ea7f06fb786ce407c7 -static/css/2.3c1ddb0a.chunk.css.map,1584938576135,198624dd1be6252b8366679ad9ee3167592d70f546660b3ac1a871c1e5a61304 -static/css/main.e015bad2.chunk.css.map,1584938576135,f7b506d122fc4a2e1d8f5167e92e30b1e01d9265105e29bd9ba3170858ee408a -static/js/runtime~main.a8a9905a.js,1584938576135,e1af5f94fdd13901b2e433d0d7607e27c01458151c35b1fe4b7feda2a32b7aa9 -static/js/runtime~main.a8a9905a.js.map,1584938576134,c337bf8b58896da637a6e50ab8cfc779eb1ec42c55f8ec429030a03454a549db -img/correlationOne.jpg,1584938566323,a7e633864f1329d802ecc2a87c0188d5e413614e81026f78cef167568e887bbb -img/att.png,1584938566322,37a8ea955eabc4d2bb86d24c746bc0351808fb01f5fb75554d300b63bc4aa878 -img/projects/opioid.png,1584938566341,28940e15a66e956e1b1a4d1aafb4fed63067293ee8cbfd237021774f8128dde7 -img/projects/kaggle.png,1584938566340,d1d2bc011b52960325635751b053d691b02c1dda97b6619e2fce617ae761b9d2 -static/js/main.7526028a.chunk.js,1584938576134,bc7a310827099172fda1179d4970fd71f6144c1ad05cdc420e13488311a463d4 -img/corrone-banner.png,1584938566325,13e0ba27b842b6842f18575cdcb1bc2e39bad868decb354478ff50dd4b901347 -img/gray.png,1584938566333,3e41ecb5d77e34b7f0efd5ef7169eedead481d700706c9f45726086059add7c4 -static/js/main.7526028a.chunk.js.map,1584938576135,6ac7a5647f817957ac0f0d4ff1793105925858c6878b682db825bafc95488def -img/hacklytics-20-banner-min.png,1584938566335,8da3bef43bf42568a3cedb422879f15d265c08f88b55d111651e9f4254bcb9d8 -img/projects/mentra.png,1584938566341,4c1687d5f4d591b0da73e3b00ac61e2162d648427a98b6af1c4e93df2fb8aa94 -img/dsgt-bg.jpg,1584938566327,f090b29922731efdfc4e52651374b078e9fae6a543228521bf1cf75e58a88ffa -img/icon-dark-min.png,1584938566336,2b8f7862e7850ca5ef5f9d1ef4e581e4845b106774f0c88dda044ffdbff68091 -static/js/2.c468a49c.chunk.js,1584938576135,a8e59f9bd8ab6e1b46e0adf486041865390d20984a99b38b73f71d77a74f4e84 -img/icon.png,1584938566339,5b13042c83e45511b176ba3e39c43b99f00dacc864e14fd9da1d2cb5c8f9e670 -img/dsgt-website-banner-min.png,1584938566333,8fedd07e26ec79b39d932218fc46c746f79281ccebf125c86dfd3162e0cdb9de -static/js/2.c468a49c.chunk.js.map,1584938576134,d5b63795176c08124334bdb070451f7e5bd880d5855a1690daf0f5c43758c352 +asset-manifest.json,1629667956287,9cd21b8d1026b7ac7ca3814f067fdef39133a0eea4b60b8c205c091d9ebf2bba +favicon.ico,1629667956288,b72f7455f00e4e58792d2bca892abb068e2213838c0316d6b7a0d6d16acd1955 +index.html,1629667956347,dda12a5b3a5c83f347e91638190241bbc4b5cbb9a444a9b3104fcabc0254dbc3 +manifest.json,1629667956348,6aaf3d87dd9bb1e96f9c691c50d0ed378ed98a120a76dea78291281834cd36e9 +precache-manifest.f9d665b49d0c9f49b710a57baf6b3602.js,1629667956348,caa89d36f6a3d69bd8abaa67e1015d130267adf0f5af4e7b22e1f91b4a4366aa +service-worker.js,1629667956348,791fbb69500302e1f752cacd1c35a4c20a2ee3466d2d9ca00bd9cf5dd91060fd +img/att.png,1629667956288,37a8ea955eabc4d2bb86d24c746bc0351808fb01f5fb75554d300b63bc4aa878 +img/citadel.jpg,1629667956289,c4b06bfedfaa06ab14185753e8ced2895c51ba5c5bd469eb0ea944f773a1a6db +img/correlationOne.jpg,1629667956290,a7e633864f1329d802ecc2a87c0188d5e413614e81026f78cef167568e887bbb +img/corrone-banner.png,1629667956291,13e0ba27b842b6842f18575cdcb1bc2e39bad868decb354478ff50dd4b901347 +img/dsgt-bg.jpg,1629667956292,f090b29922731efdfc4e52651374b078e9fae6a543228521bf1cf75e58a88ffa +img/dsgt-website-banner-min.png,1629667956317,8fedd07e26ec79b39d932218fc46c746f79281ccebf125c86dfd3162e0cdb9de +img/gray.png,1629667956318,3e41ecb5d77e34b7f0efd5ef7169eedead481d700706c9f45726086059add7c4 +img/hacklytics-20-banner-min.png,1629667956320,8da3bef43bf42568a3cedb422879f15d265c08f88b55d111651e9f4254bcb9d8 +img/icon-dark-min.png,1629667956326,2b8f7862e7850ca5ef5f9d1ef4e581e4845b106774f0c88dda044ffdbff68091 +img/icon.png,1629667956344,5b13042c83e45511b176ba3e39c43b99f00dacc864e14fd9da1d2cb5c8f9e670 +img/kpmg.png,1629667956345,da907cea98ac8eccef0d4d7b61e74124667f465e6e920bf2c44bc701532983f0 +img/projects/geo.png,1629667956345,ba684a1604aede25500bb2958aeb4a904e9a554f3a9f0c313d477bf87567f8c7 +img/projects/kaggle.png,1629667956346,d1d2bc011b52960325635751b053d691b02c1dda97b6619e2fce617ae761b9d2 +img/projects/mentra.png,1629667956347,4c1687d5f4d591b0da73e3b00ac61e2162d648427a98b6af1c4e93df2fb8aa94 +img/projects/opioid.png,1629667956347,28940e15a66e956e1b1a4d1aafb4fed63067293ee8cbfd237021774f8128dde7 +static/css/2.3c1ddb0a.chunk.css,1629667956349,2423b6c56bbf3318ef454b5e4d0088a0360997c33d8dd5f448fdd13bba7c4e32 +static/css/2.3c1ddb0a.chunk.css.map,1629667956349,198624dd1be6252b8366679ad9ee3167592d70f546660b3ac1a871c1e5a61304 +static/css/main.e015bad2.chunk.css,1629667956349,45f160af4b978be4bfec1fb79b9091c670bb43c74aea93ea7f06fb786ce407c7 +static/css/main.e015bad2.chunk.css.map,1629667956350,f7b506d122fc4a2e1d8f5167e92e30b1e01d9265105e29bd9ba3170858ee408a +static/js/2.c468a49c.chunk.js,1629667956358,a8e59f9bd8ab6e1b46e0adf486041865390d20984a99b38b73f71d77a74f4e84 +static/js/2.c468a49c.chunk.js.map,1629667956390,74e2e26343ac3b36f50bdd41e78525966d5b9c0f98b37ab36f0b45ccfa6a756c +static/js/main.7526028a.chunk.js,1629667956392,bc7a310827099172fda1179d4970fd71f6144c1ad05cdc420e13488311a463d4 +static/js/main.7526028a.chunk.js.map,1629667956394,6ac7a5647f817957ac0f0d4ff1793105925858c6878b682db825bafc95488def +static/js/runtime~main.a8a9905a.js,1629667956394,e1af5f94fdd13901b2e433d0d7607e27c01458151c35b1fe4b7feda2a32b7aa9 +static/js/runtime~main.a8a9905a.js.map,1629667956395,c337bf8b58896da637a6e50ab8cfc779eb1ec42c55f8ec429030a03454a549db diff --git a/firebase.json b/firebase.json index e6999286..cd34f941 100644 --- a/firebase.json +++ b/firebase.json @@ -1,17 +1,12 @@ { "hosting": { - "public": "public", + "public": "frontend/build", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "redirects": [ - { - "source": "**/AtlMap", - "destination": "https://atlcrime.datasciencegt.org", - "type": 302 - }, { "source": "**/AtlCrime", "destination": "https://atlcrime.datasciencegt.org", @@ -20,35 +15,7 @@ ], "rewrites": [ { - "source": "**/paid_account", - "function": "paid_account" - }, - { - "source": "**/sponsors", - "destination": "/index.html" - }, - { - "source": "**/login", - "destination": "/index.html" - }, - { - "source": "**/signup", - "destination": "/index.html" - }, - { - "source": "**/dashboard/home", - "destination": "/index.html" - }, - { - "source": "**/dashboard/edit", - "destination": "/index.html" - }, - { - "source": "**/dashboard/event", - "destination": "/index.html" - }, - { - "source": "**/dashboard/group", + "source": "**", "destination": "/index.html" } ] diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 00000000..4015ab20 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,89 @@ + + + + + + Welcome to Firebase Hosting + + + + + + + + + + + + + + + + + + + +
+

Welcome

+

Firebase Hosting Setup Complete

+

You're seeing this because you've successfully setup Firebase Hosting. Now it's time to go build something extraordinary!

+ Open Hosting Documentation +
+

Firebase SDK Loading…

+ + + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 0b2e68ee..069b4992 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -4377,6 +4377,21 @@ "gud": "^1.0.0" } }, + "cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "requires": { + "node-fetch": "2.6.1" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + } + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -4472,6 +4487,15 @@ } } }, + "css-in-js-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", + "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "requires": { + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" + } + }, "css-loader": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", @@ -6183,6 +6207,11 @@ } } }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, "figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", @@ -7738,6 +7767,11 @@ } } }, + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -7873,6 +7907,14 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, + "inline-style-prefixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz", + "integrity": "sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg==", + "requires": { + "css-in-js-utils": "^2.0.0" + } + }, "inquirer": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", @@ -11914,6 +11956,11 @@ "abbrev": "1" } }, + "normalize-css-color": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/normalize-css-color/-/normalize-css-color-1.0.2.tgz", + "integrity": "sha1-Apkel8zOxmI/5XOvu/Deah8+n40=" + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -13884,6 +13931,19 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.5.tgz", "integrity": "sha512-O9JRum1Zq/qCPFH5qVEvDDrVun8Jv9vbHtZXCR1EuRj9sKg1xJTlHxBzU6AkCzpvxRLuiY4OKImy3cDLQ+UTdg==" }, + "react-faq-component": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/react-faq-component/-/react-faq-component-1.3.1.tgz", + "integrity": "sha512-5JkmFu+WqeyXaf2fuYIoP5snP81S3EWreNdraWLtwiGiN5TpinjpOt59OgPZTDOfXfAjOfNPaVWYateh7IFI7g==" + }, + "react-icons": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-3.10.0.tgz", + "integrity": "sha512-WsQ5n1JToG9VixWilSo1bHv842Cj5aZqTGiS3Ud47myF6aK7S/IUY2+dHcBdmkQcCFRuHsJ9OMUI0kTDfjyZXQ==", + "requires": { + "camelcase": "^5.0.0" + } + }, "react-is": { "version": "16.8.6", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", @@ -13899,6 +13959,53 @@ "resolved": "https://registry.npmjs.org/react-moment/-/react-moment-0.9.2.tgz", "integrity": "sha512-jpKIEvcEOTSa4RXWTjDlvja7sN+ee5Gyk5ZKa704FZxE01OxmKIpq9GUliqTrAgdDYJJUQsnqQamczn0TN+DTg==" }, + "react-native-web": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.17.1.tgz", + "integrity": "sha512-lUnn+2O8ynQ6/gJKylSxm7DLi2vHw6AujdDV1+LSa8Epe1bYFJNUcJTEhJf0jNYUFGOujzMtuG8Mkz3HdWTkag==", + "requires": { + "array-find-index": "^1.0.2", + "create-react-class": "^15.7.0", + "fbjs": "^3.0.0", + "hyphenate-style-name": "^1.0.4", + "inline-style-prefixer": "^6.0.0", + "normalize-css-color": "^1.0.2", + "prop-types": "^15.6.0" + }, + "dependencies": { + "create-react-class": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", + "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "fbjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", + "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "requires": { + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + } + } + }, "react-overlays": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-1.2.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index f3c30953..cbbecd4e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -15,7 +15,10 @@ "react": "^16.12.0", "react-bootstrap": "^1.0.0-beta.8", "react-dom": "^16.12.0", + "react-faq-component": "^1.3.1", + "react-icons": "^3.10.0", "react-moment": "^0.9.2", + "react-native-web": "^0.17.1", "react-responsive-carousel": "^3.1.51", "react-router-dom": "^5.0.0", "react-scripts": "3.0.0", diff --git a/frontend/public/index.html b/frontend/public/index.html index 9d0ae42c..22cf1579 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -1 +1,34 @@ -Data Science at GT
\ No newline at end of file + + + + + + + + + + + + Data Science at GT + + + + + + + + + +
+ + + + + + + \ No newline at end of file diff --git a/frontend/src/components/App/index.js b/frontend/src/components/App/index.js index 92b7a6bc..0765bcd7 100644 --- a/frontend/src/components/App/index.js +++ b/frontend/src/components/App/index.js @@ -1,37 +1,57 @@ -import React from 'react' ; -import {BrowserRouter as Router, Route} from 'react-router-dom'; -import Navigation from '../Navigation'; -import HomePage from "../Home Page"; -import SponsorsPage from '../Sponsors Page'; +import React from "react"; +import { BrowserRouter as Router, Route } from "react-router-dom"; +import Navigation from "../Navigation"; +import LandingPage from "../Landing Page"; +import SponsorsPage from "../Sponsors Page"; import SignUpPage from "../Signup Page"; -import LoginPage from "../Login Page"; -import Dashboard from '../Dashboard'; -import DashboardEventPage from '../Dashboard/Common/Event Page'; -import DashboardEditProfilePage from '../Dashboard/Common/Edit Profile Page'; -import * as ROUTES from "../../config/routes" -import { withAuthentication } from "../Session" -import DashboardGroupPage from '../Dashboard/Common/Group Page'; +import LoginPage from "../Login Page"; +import Dashboard from "../Dashboard"; +import DashboardEventPage from "../Dashboard/Common/Event Page"; +import DashboardEditProfilePage from "../Dashboard/Common/Edit Profile Page"; +import * as ROUTES from "../../config/routes"; +import { withAuthentication } from "../Session"; +import DashboardGroupPage from "../Dashboard/Common/Group Page"; +import OurTeam from "../OurTeam"; +import OurWork from "../OurWork"; +import Contact from "../Contact"; +import Bootcamp from "../Bootcamp"; +import Projects from "../Projects"; /** * @author Raj Shrimali and Vidhur Kumar */ class App extends React.Component { - render () { - return ( - - - - - - - - - - - - ) - } + render() { + return ( + <> + + + + + + + + + + + + + + + + + + + ); + } } -export default withAuthentication(App); +export default withAuthentication(App); diff --git a/frontend/src/components/Bootcamp/assets/3b1b.jpg b/frontend/src/components/Bootcamp/assets/3b1b.jpg new file mode 100644 index 00000000..1f86ca94 Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/3b1b.jpg differ diff --git a/frontend/src/components/Bootcamp/assets/Bootcamp Spring 2021 Calendar.pdf b/frontend/src/components/Bootcamp/assets/Bootcamp Spring 2021 Calendar.pdf new file mode 100644 index 00000000..abae388f Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/Bootcamp Spring 2021 Calendar.pdf differ diff --git a/frontend/src/components/Bootcamp/assets/Copy_of_Drill3.ipynb b/frontend/src/components/Bootcamp/assets/Copy_of_Drill3.ipynb new file mode 100644 index 00000000..cc6b6f14 --- /dev/null +++ b/frontend/src/components/Bootcamp/assets/Copy_of_Drill3.ipynb @@ -0,0 +1,563 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Copy of Drill3.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "dZN9P40wNVBI" + }, + "source": [ + " \n", + "# Drill Week 3: Feature Manipulation \n", + "\n", + "In this drill, you will use essential pandas manipulations on a NEW dataset. \n", + "We will get this dataset from an outside source :) \n", + "\n", + "Specifically, we will be using the wine dataset. \n", + "\n", + "\n", + " \n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "o2FgwyrPNYw3" + }, + "source": [ + "from sklearn.datasets import load_wine\n", + "\n", + "import pandas as pd # fill in with the proper package name \n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DK8ctvzGPN3j" + }, + "source": [ + "This dataset contains 3 types of wines, and the following measures for each \n", + "\n", + "- Alcohol\n", + "- Malic acid\n", + "- Ash\n", + "- Alcalinity of ash\n", + "- Magnesium\n", + "- Total phenols\n", + "- Flavanoids\n", + "- Nonflavanoid phenols\n", + "- Proanthocyanins\n", + "- Color intensity\n", + "- Hue\n", + "- OD280/OD315 of diluted wines\n", + "- Proline" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RrYCSMV6OHqp" + }, + "source": [ + "data = load_wine() \n", + "features = data.data # these are our features \n", + "labels = data.target\n", + "df = pd.DataFrame(features)\n", + "df.columns = data.feature_names\n", + "df['labels'] = labels" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "Asvh4DRNOak-", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 430 + }, + "outputId": "52385021-0f5c-46e0-c191-0954e2304519" + }, + "source": [ + "df" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
alcoholmalic_acidashalcalinity_of_ashmagnesiumtotal_phenolsflavanoidsnonflavanoid_phenolsproanthocyaninscolor_intensityhueod280/od315_of_diluted_winesprolinelabels
014.231.712.4315.6127.02.803.060.282.295.641.043.921065.00
113.201.782.1411.2100.02.652.760.261.284.381.053.401050.00
213.162.362.6718.6101.02.803.240.302.815.681.033.171185.00
314.371.952.5016.8113.03.853.490.242.187.800.863.451480.00
413.242.592.8721.0118.02.802.690.391.824.321.042.93735.00
.............................................
17313.715.652.4520.595.01.680.610.521.067.700.641.74740.02
17413.403.912.4823.0102.01.800.750.431.417.300.701.56750.02
17513.274.282.2620.0120.01.590.690.431.3510.200.591.56835.02
17613.172.592.3720.0120.01.650.680.531.469.300.601.62840.02
17714.134.102.7424.596.02.050.760.561.359.200.611.60560.02
\n", + "

178 rows Γ— 14 columns

\n", + "
" + ], + "text/plain": [ + " alcohol malic_acid ash ... od280/od315_of_diluted_wines proline labels\n", + "0 14.23 1.71 2.43 ... 3.92 1065.0 0\n", + "1 13.20 1.78 2.14 ... 3.40 1050.0 0\n", + "2 13.16 2.36 2.67 ... 3.17 1185.0 0\n", + "3 14.37 1.95 2.50 ... 3.45 1480.0 0\n", + "4 13.24 2.59 2.87 ... 2.93 735.0 0\n", + ".. ... ... ... ... ... ... ...\n", + "173 13.71 5.65 2.45 ... 1.74 740.0 2\n", + "174 13.40 3.91 2.48 ... 1.56 750.0 2\n", + "175 13.27 4.28 2.26 ... 1.56 835.0 2\n", + "176 13.17 2.59 2.37 ... 1.62 840.0 2\n", + "177 14.13 4.10 2.74 ... 1.60 560.0 2\n", + "\n", + "[178 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "imQd6EjmQzqh" + }, + "source": [ + "## Drilling Feature Manipulation \n", + "Use pd.columns to return the title of each feature " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qz3YY3wUSdob" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sttZTn3rRFMX" + }, + "source": [ + "Your equipment measurer was not callibrated correctly. Add 2 points to the magnesium of each entry " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "By-yRqVRSeAe" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "G2VdlHvqReJ9" + }, + "source": [ + "Create a new feature called flav_to_non_flav ratio that is the ratio between flavanoids and nonflavanoid_phenols. \n", + "Run a df.head to make sure your changes were made " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vz-G55U_R8Ri" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nOGFFOysSOqN" + }, + "source": [ + "Create a new dataframe called high_alcohol_content. Have it only contain the entries with the alcohol value over 13.5 \n", + "Hint -- use the solution as shown in the lecture " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "wFYgV_H9Sgpj" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vXUIUilUSJvj" + }, + "source": [ + "Increase the malic_acid value by 1 where the total_phenols is over 1.7" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gY2o8qjrShRR" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AOE8YPF7P-I9" + }, + "source": [ + "## Drilling Feature Selection \n", + "You hate the number 13. Use loc to drop the entry at position 13. (Remember -- Python uses 0 indexing!) " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mC-B27MsP8gt" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "H99w0SKqQYEp" + }, + "source": [ + "You also know that having too many features may increase computational overhead and not help accuracy. \n", + "Drop the 3 columns you think are the least helpful in determining the wine class " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ayhZoUlfPt2N" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "l_9xb70nlGAe" + }, + "source": [ + "#Preprocessing" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Zw_Nbh6XlIPF" + }, + "source": [ + "For each column, find the number of missing values" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3omGILfBlNAW" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lIJbWEfnlNmA" + }, + "source": [ + "Take the correlation among the features using a heatmap. Drop the 3 columns with the lowest amount of correlation with \"label\" in magnitude." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "I0jlfC8pnVS9" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OV6pXSdzTMso" + }, + "source": [ + "## Drilling Critical Thinking \n", + "Say you are given a new dataset. You see there are over 30 features. \n", + "What are some benefits and drawbacks to having this many features? \n", + "If you had to drop some, what are a few ways that you could select which features to keep? " + ] + } + ] +} \ No newline at end of file diff --git a/frontend/src/components/Bootcamp/assets/DSGT Bootcamp_ Milestone 3 Description.pdf b/frontend/src/components/Bootcamp/assets/DSGT Bootcamp_ Milestone 3 Description.pdf new file mode 100644 index 00000000..be090455 Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/DSGT Bootcamp_ Milestone 3 Description.pdf differ diff --git a/frontend/src/components/Bootcamp/assets/Data Warriors_Write_Up.pdf b/frontend/src/components/Bootcamp/assets/Data Warriors_Write_Up.pdf new file mode 100644 index 00000000..846d3795 Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/Data Warriors_Write_Up.pdf differ diff --git a/frontend/src/components/Bootcamp/assets/Discord-Logo.png b/frontend/src/components/Bootcamp/assets/Discord-Logo.png new file mode 100644 index 00000000..0e6d7d10 Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/Discord-Logo.png differ diff --git a/frontend/src/components/Bootcamp/assets/Gmail-logo.jpg b/frontend/src/components/Bootcamp/assets/Gmail-logo.jpg new file mode 100644 index 00000000..8319cc29 Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/Gmail-logo.jpg differ diff --git a/frontend/src/components/Bootcamp/assets/Slack.png b/frontend/src/components/Bootcamp/assets/Slack.png new file mode 100644 index 00000000..14d1626d Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/Slack.png differ diff --git a/frontend/src/components/Bootcamp/assets/Workshop 4 Drill.png b/frontend/src/components/Bootcamp/assets/Workshop 4 Drill.png new file mode 100644 index 00000000..3c5ba87a Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/Workshop 4 Drill.png differ diff --git a/frontend/src/components/Bootcamp/assets/kaggle.png b/frontend/src/components/Bootcamp/assets/kaggle.png new file mode 100644 index 00000000..52e126df Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/kaggle.png differ diff --git a/frontend/src/components/Bootcamp/assets/portrait.png b/frontend/src/components/Bootcamp/assets/portrait.png new file mode 100644 index 00000000..d8c99237 Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/portrait.png differ diff --git a/frontend/src/components/Bootcamp/assets/scikitlearn.png b/frontend/src/components/Bootcamp/assets/scikitlearn.png new file mode 100644 index 00000000..52726b91 Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/scikitlearn.png differ diff --git a/frontend/src/components/Bootcamp/assets/udemy.png b/frontend/src/components/Bootcamp/assets/udemy.png new file mode 100644 index 00000000..01c6cc54 Binary files /dev/null and b/frontend/src/components/Bootcamp/assets/udemy.png differ diff --git a/frontend/src/components/Bootcamp/index.js b/frontend/src/components/Bootcamp/index.js new file mode 100644 index 00000000..125de429 --- /dev/null +++ b/frontend/src/components/Bootcamp/index.js @@ -0,0 +1,41 @@ +import React from 'react'; +import { Button, Container } from 'react-bootstrap'; +import Events from './sections/Introduction'; +import Footer from '../Footer'; + +import Timeline from './sections/Timeline'; +import Introduction from './sections/Introduction'; +import PastBootcampMaterial from './sections/PastBootcampMaterial'; +import Apply from './sections/Apply'; +import Resources from './sections/Resources'; +import FAQ from './sections/FAQ'; +import Contact from './sections/Contact'; +import PhotoGallery from './sections/PhotoGallery'; + + + + +let divPadding = { + padding: "4em 0 8em 0", +} + +let rightAlign = { + float: "right", +} + + +export default class Bootcamp extends React.Component { + render() { + return ( +
+ + + + + + + +
+ ); + } +} diff --git a/frontend/src/components/Bootcamp/sections/Apply.js b/frontend/src/components/Bootcamp/sections/Apply.js new file mode 100644 index 00000000..57dd8abe --- /dev/null +++ b/frontend/src/components/Bootcamp/sections/Apply.js @@ -0,0 +1,44 @@ +import React from "react"; +import { Container } from 'react-bootstrap'; +import Card from 'react-bootstrap/Card'; +import { FaFileExcel } from "react-icons/fa"; +//import CardDeck from 'react-bootstrap/CardDeck'; +//import portrait from '../assets/portrait.png'; +import { Linking } from 'react-native'; +import { Text } from 'react-native'; + +var divPadding = { + padding: "4em 0 4em 0", +} + +var divPaddingInner = { + padding: "0 0 2em 0", +} + +var noBorder = { + border: "none", +} + + +var lightBlue = { + backgroundColor: "#F1F9FF", +} + +var container = { + //display: flex, +} +export default class Apply extends React.Component { + render() { + return( +
+ +

Apply Now!

+ Linking.openURL('https://docs.google.com/forms/d/e/1FAIpQLSfUjVWyEhOu0ZJL9qiqa7H2mn_clHM9GRMJO7b77fsaI3XJpw/closedform')}> +
Bootcamp Application
+
+
+
+ ); + } +} diff --git a/frontend/src/components/Bootcamp/sections/Contact.js b/frontend/src/components/Bootcamp/sections/Contact.js new file mode 100644 index 00000000..f1dc6cd0 --- /dev/null +++ b/frontend/src/components/Bootcamp/sections/Contact.js @@ -0,0 +1,74 @@ +import React from "react"; +import { Container } from 'react-bootstrap'; +import Card from 'react-bootstrap/Card'; +import { FaFileExcel } from "react-icons/fa"; +//import CardDeck from 'react-bootstrap/CardDeck'; +//import portrait from '../assets/portrait.png'; +import { Linking } from 'react-native'; +import { Text } from 'react-native'; + +var divPadding = { + padding: "4em 0 4em 0", +} + +var divPaddingInner = { + padding: "0 0 2em 0", +} + + +var divPadding2 = { + padding: "0 4em 0 4em", + // width: '100%', + // height: auto, + width: 200, + // height : auto +} + +var noBorder = { + border: "none", +} + +var lightBlue = { + backgroundColor: "#F1F9FF", +} + +var container = { + //display: flex, +} +export default class Contact extends React.Component { + render() { + return( +
+ +

Contact Us

+ + + +

+
+ + +

+
+ + +

+
+
+ {/* Linking.openURL('https://discord.gg/B3DbxxA8')}> +
Google
+
*/} + {/* Linking.openURL('datasciencegt.slack.com')}> +
Email
+
+ Linking.openURL('hello@datasciencegt.org')}> +
Slack
+
*/} +
+
+ ); + } +} diff --git a/frontend/src/components/Bootcamp/sections/FAQ.js b/frontend/src/components/Bootcamp/sections/FAQ.js new file mode 100644 index 00000000..63575502 --- /dev/null +++ b/frontend/src/components/Bootcamp/sections/FAQ.js @@ -0,0 +1,93 @@ +import React from "react"; +import { Container } from 'react-bootstrap'; +import Card from 'react-bootstrap/Card'; +import { FaFileExcel } from "react-icons/fa"; +//import CardDeck from 'react-bootstrap/CardDeck'; +//import portrait from '../assets/portrait.png'; +import { useEffect, useState } from "react"; +import Faq from "react-faq-component"; + +const data = { + title: "FAQ", + rows: [ + { + title: "How often are workshops held?", + content: `Workshops are held every other week during the bootcamp, and our bootcamp activity alternates each week between workshops and milestones for your team project.`, + }, + { + title: "Do I need prior data science experience to apply?", + content: "Nope! Our bootcamp program starts from the basics and progressively accelerates so that you develop a solid data science foundation for any future projects or roles you pursue, and our Content Team leaders are here to closely guide you along the way.", + }, + { + title: "What projects are available to work on?", + content: `We provide suggestions and insights into potential project topics for your team project, but really, the sky is the limit! Prior teams have pursued every domain from healthcare to geospatial mapping to Disneyland ratings, and any area you choose to pursue with your team, we're super excited to work with you along the way!`, + }, + { + title: "How are project teams decided?", + content: "Members have the option to form their own teams of 4-5 students, and we ensure that every member is put on a project team if they choose not to self-form.", + }, + { + title: "How much are the dues?", + content: "No dues! Just be ready to learn a lot and make meaningful, long-lastings relationships with peers and mentors who share your interest in data science!", + }, + ], +}; + +const styles = { + // bgColor: 'white', + titleTextColor: "blue", + rowTitleColor: "blue", + // rowContentPaddingLeft: '500px', + // padding: "0.75em 0" + // rowContentColor: 'grey', + // arrowColor: "red", + innerWidth: '20%', +}; + +// .faq-style-wrapper .faq-body .faq-row { +// padding: 0.75em 0; +// } + +const config = { + // animate: true, + // arrowIcon: "V", + // tabFocus: true +}; + +export default class FAQ extends React.Component { + render() { + return ( +
+ +
+ ); + // return( + //
+ // + //

FAQ

+ //

+ //
Q: How often are workshops held?
+ //
A: Workshops are held every other week during the bootcamp, and our bootcamp activity alternates each week between workshops and milestones for your team project.
+ + //
Q: Do I need prior data science experience to apply?
+ //
A: Nope! Our bootcamp program starts from the basics and progressively accelerates so that you develop a solid data science foundation for any future projects or roles you pursue, and our Content Team leaders are here to closely guide you along the way.
+ + //
Q: What projects are available to work on?
+ //
A: We provide suggestions and insights into potential project topics for your team project, but really, the sky is the limit! Prior teams have pursued every domain from healthcare to geospatial mapping to Disneyland ratings, and any area you choose to pursue with your team, we're super excited to work with you along the way!
+ + //
Q: How are project teams decided?
+ //
A: Members have the option to form their own teams of 4-5 students, and we ensure that every member is put on a project team if they choose not to self-form.
+ + //
Q: How much are the dues?
+ //
A: No dues! Just be ready to learn a lot and make meaningful, long-lastings relationships with peers and mentors who share your interest in data science!
+ + //

+ //
+ //
+ // ); + } +} diff --git a/frontend/src/components/Bootcamp/sections/Introduction.js b/frontend/src/components/Bootcamp/sections/Introduction.js new file mode 100644 index 00000000..bc856f15 --- /dev/null +++ b/frontend/src/components/Bootcamp/sections/Introduction.js @@ -0,0 +1,63 @@ +import React from "react"; +import { Container } from "react-bootstrap"; +import Card from "react-bootstrap/Card"; +import { FaFileExcel } from "react-icons/fa"; +//import CardDeck from 'react-bootstrap/CardDeck'; +//import portrait from '../assets/portrait.png'; +import Schedule from '../assets/Bootcamp Spring 2021 Calendar.pdf'; + +var divPadding = { + padding: "4em 0 4em 0", +}; + +var divPaddingInner = { + padding: "0 0 2em 0", +}; + +var noBorder = { + border: "none", +}; + +var lightBlue = { + backgroundColor: "#F1F9FF", +}; + +var container = { + display: "flex", +}; + +var linkColor = { + color: 'lightblue', + backgroundColor: 'transparent', +}; +export default class Introduction extends React.Component { + render() { + return ( + <> +
+ +

Welcome to Bootcamp

+

+ DSGT bootcamp is an immersive 11-week experience where you’ll + learn a variety of data science skills and work in teams to answer + significant questions by analyzing data. Our mentors will host + workshops and guide you through your projects. We work in + iterative milestones and provide feedback on your work. +

+
+
+ +
+ +

+ To join the DSGT bootcamp, you must be a member of the club: apply{" "} + + via this link + +

+
+
+ + ); + } +} diff --git a/frontend/src/components/Bootcamp/sections/PastBootcampMaterial.js b/frontend/src/components/Bootcamp/sections/PastBootcampMaterial.js new file mode 100644 index 00000000..c60037f3 --- /dev/null +++ b/frontend/src/components/Bootcamp/sections/PastBootcampMaterial.js @@ -0,0 +1,71 @@ +import React from "react"; +import { Container } from 'react-bootstrap'; +import Card from 'react-bootstrap/Card'; +import { FaDiceFive, FaFileExcel } from "react-icons/fa"; +//import CardDeck from 'react-bootstrap/CardDeck'; +//import portrait from '../assets/portrait.png'; +import Milestone3 from '../assets/DSGT Bootcamp_ Milestone 3 Description.pdf'; +import DataWarriorsWork from '../assets/Data Warriors_Write_Up.pdf'; +import Workshop4Drill from '../assets/Workshop 4 Drill.png'; +import { Linking } from 'react-native'; +import { Text } from 'react-native'; + + +var divPadding = { + padding: "4em 0 4em 0", +} + +var divPaddingInner = { + padding: "0 0 2em 0", +} + +var noBorder = { + border: "none", +} + + +var lightBlue = { + backgroundColor: "#F1F9FF", +} + +var container = { + flexWrap: 'wrap', + flexDirection: 'row', + // height: 30, + // paddingTop: 5, + + //display: flex, +} + +// var element = { +// flexWrap: 'wrap', +// flexDirection: 'row', +// height: 30, +// paddingTop: 5, + +// //display: flex, +// } + +export default class PastBootcampMaterial extends React.Component { + render() { + return( +
+

Past Bootcamp Material

+ +
+ + Milestone 3 Instructions Document +
+
+ + Workshop 4 Colab Notebook +
+
+ + Milestone 2 Deliverable +
+
+
+ ); + } +} diff --git a/frontend/src/components/Bootcamp/sections/PhotoGallery.js b/frontend/src/components/Bootcamp/sections/PhotoGallery.js new file mode 100644 index 00000000..155f30f0 --- /dev/null +++ b/frontend/src/components/Bootcamp/sections/PhotoGallery.js @@ -0,0 +1,38 @@ +import React from "react"; +import { Container } from 'react-bootstrap'; +import Card from 'react-bootstrap/Card'; +import { FaFileExcel } from "react-icons/fa"; +//import CardDeck from 'react-bootstrap/CardDeck'; +//import portrait from '../assets/portrait.png'; + +var divPadding = { + padding: "4em 0 4em 0", +} + +var divPaddingInner = { + padding: "0 0 2em 0", +} + +var noBorder = { + border: "none", +} + + +var lightBlue = { + backgroundColor: "#F1F9FF", +} + +var container = { + //display: flex, +} +export default class PhotoGallery extends React.Component { + render() { + return( +
+ +

Photo Gallery

+
+
+ ); + } +} diff --git a/frontend/src/components/Bootcamp/sections/Resources.js b/frontend/src/components/Bootcamp/sections/Resources.js new file mode 100644 index 00000000..bab83a3c --- /dev/null +++ b/frontend/src/components/Bootcamp/sections/Resources.js @@ -0,0 +1,72 @@ +import React from "react"; +import { Container } from 'react-bootstrap'; +import Card from 'react-bootstrap/Card'; +import { FaFileExcel } from "react-icons/fa"; +//import CardDeck from 'react-bootstrap/CardDeck'; +//import portrait from '../assets/portrait.png'; +import { Linking } from 'react-native'; +import { Text } from 'react-native'; + +var divPadding = { + padding: "4em 0 4em 0", +} + + +var divPadding2 = { + padding: "0 4em 0 4em", + // width: '100%', + // height: auto, + width: 250, + // height : 300 +} + +var divPaddingInner = { + padding: "0 0 2em 0", +} + +var noBorder = { + border: "none", +} + + +var lightBlue = { + backgroundColor: "#F1F9FF", +} + +var container = { + //display: flex, +} + +export default class Resources extends React.Component { + render() { + return( +
+ +

Resources

+ + Linking.openURL('https://dsgtbootcamp.netlify.app/')}> +
DSGT Bootcamp Website
+
+ + +

+
+ + +

+
+ + +

+
+ + +

+
+
+
+
+ ); + } +} diff --git a/frontend/src/components/Bootcamp/sections/Timeline.js b/frontend/src/components/Bootcamp/sections/Timeline.js new file mode 100644 index 00000000..f55664d7 --- /dev/null +++ b/frontend/src/components/Bootcamp/sections/Timeline.js @@ -0,0 +1,21 @@ +import React from 'react'; + +import { Image, Row } from 'react-bootstrap'; + +import timeline from './timeline.png'; + +let blue = { + color: "#0063B9", +} + + +export default class Home extends React.Component { + render() { + return ( +
+

Our Work

+ +
+ ); + } + } diff --git a/frontend/src/components/Bootcamp/sections/timeline.png b/frontend/src/components/Bootcamp/sections/timeline.png new file mode 100644 index 00000000..1470fb09 Binary files /dev/null and b/frontend/src/components/Bootcamp/sections/timeline.png differ diff --git a/frontend/src/components/Contact/index.js b/frontend/src/components/Contact/index.js new file mode 100644 index 00000000..98b6e900 --- /dev/null +++ b/frontend/src/components/Contact/index.js @@ -0,0 +1,79 @@ +import React from "react"; +import { Button, Col, Container, Row } from "react-bootstrap"; +import Form from "react-bootstrap/Form"; +import Footer from "../Footer"; + +let divPadding = { + padding: "4em 0 4em 0", +}; + +let divPaddingInner = { + padding: "2em 0 2em 0", +}; + +let blue = { + color: "#0063B9", +}; + +class ContactForm extends React.Component { + render() { + return ( +
+ + Name + + + + Email address + + + + Message + + + +
+ ); + } +} + +export default class Contact extends React.Component { + render() { + return ( +
+ + +

Contact

{" "} +
+ + + Cras lacinia pulvinar ex. Integer mattis vitae tortor et bibendum. + Praesent eu eros eget dolor interdum sollicitudin. Curabitur ac + dolor non mi volutpat porta. Nullam dapibus eleifend metus, non + fringilla quam interdum vel. Quisque tincidunt ut orci at + faucibus. Nulla facilisi. Proin efficitur sapien sed massa feugiat + pharetra. Sed non nisl sed lacus lobortis pellentesque non sed + quam. Nullam volutpat tortor nec efficitur auctor. Sed imperdiet + erat et turpis lacinia, et pulvinar nunc imperdiet. Maecenas sit + amet tempus ipsum, ac volutpat leo. Nulla finibus quis lectus at + fermentum. In ultricies ultricies tortor, vitae consectetur diam + imperdiet cursus. Morbi tincidunt, enim et accumsan blandit, augue + tortor sodales magna, eu elementum erat dolor eu nunc. Phasellus + hendrerit finibus iaculis. Cras a ligula sollicitudin, consectetur + purus at, aliquet dolor. Cras sapien massa, lobortis non urna + molestie, blandit malesuada erat. Sed in felis tellus. Donec sem + enim, pretium nec posuere ac, tempor et nibh. Nam at lorem + tristique, aliquet enim at, consequat leo. Ut non ultrices lorem. + + + + + +
+
+ ); + } +} diff --git a/frontend/src/components/Firebase/event.ts b/frontend/src/components/Firebase/event.ts index 390a47ab..78099399 100644 --- a/frontend/src/components/Firebase/event.ts +++ b/frontend/src/components/Firebase/event.ts @@ -3,8 +3,11 @@ * Following Singleton model as expected from a tutorial online * Instantiate with a firebase app instance - will use that */ + + +import firebase from "firebase/app"; import Firebase from "./firebase"; -import {firestore, auth, functions} from "firebase/app"; +import firestore from "firebase/app"; /** * @author Vidhur Kumar @@ -138,7 +141,7 @@ class EventApi { async add_to_event_attendee_list(id: string, name: string) { let eventRef = this.db.collection("events").doc(id); return eventRef.update({ - attendee_list: firestore.FieldValue.arrayUnion(name) + attendee_list: firebase.firestore.FieldValue.arrayUnion(name) }); } @@ -190,7 +193,7 @@ class EventApi { let eventRef = this.db.collection("events").doc(id); eventRef.update({ - rsvp_list: firestore.FieldValue.arrayUnion(userName) + rsvp_list: firebase.firestore.FieldValue.arrayUnion(userName) }); } } diff --git a/frontend/src/components/Firebase/file.ts b/frontend/src/components/Firebase/file.ts index e730b165..522ebd67 100644 --- a/frontend/src/components/Firebase/file.ts +++ b/frontend/src/components/Firebase/file.ts @@ -3,7 +3,10 @@ * support special, common uploads such as Venmo and Resume. * This should be the POC for all google cloud storage functionality. */ + +import firebase from "firebase/app"; import Firebase from "./firebase"; +import firestore from "firebase/app"; diff --git a/frontend/src/components/Firebase/groups.ts b/frontend/src/components/Firebase/groups.ts index ce11b0f0..b9d642b5 100644 --- a/frontend/src/components/Firebase/groups.ts +++ b/frontend/src/components/Firebase/groups.ts @@ -3,7 +3,7 @@ * for managing groups, mostly related to creating, deleting, etc. */ import Firebase from "./firebase"; -import {firestore} from "firebase/app"; +import firebase from "firebase/app"; export default class GroupApi { @@ -54,7 +54,7 @@ export default class GroupApi { // add user to group const curr_uid = this._fbapp.user.get_current_uid(); // console.log(name) - this.db.collection('users').doc(curr_uid).update({groups: firestore.FieldValue.arrayUnion(name)}) + this.db.collection('users').doc(curr_uid).update({groups: firebase.firestore.FieldValue.arrayUnion(name)}) } /** @@ -75,7 +75,7 @@ export default class GroupApi { let individualRemovalPromise = this.db.collection('usergroups').doc(name).collection('members').get().then((members: any) => { // for each member in here, update their document to not include this group members.docs.forEach((memberDocRef:any) => { - this.db.collection('users').doc(memberDocRef.id).update({groups: firestore.FieldValue.arrayRemove(name)}); + this.db.collection('users').doc(memberDocRef.id).update({groups: firebase.firestore.FieldValue.arrayRemove(name)}); memberDocRef.ref.delete(); }) }); diff --git a/frontend/src/components/Firebase/user.ts b/frontend/src/components/Firebase/user.ts index d08751eb..3508f4f2 100644 --- a/frontend/src/components/Firebase/user.ts +++ b/frontend/src/components/Firebase/user.ts @@ -5,7 +5,11 @@ */ import Firebase from "./firebase"; import * as entity from "./entity"; -import {firestore, auth, functions} from "firebase/app"; +import firebase from "firebase/app"; +//import {auth, firestore, functions} from "firebase/app"; +import auth from "firebase/app"; +import firestore from "firebase/app"; +import functions from "firebase/app"; import {DUES_SEMESTER, DUES_YEAR} from "../../config/config"; /** @@ -20,7 +24,7 @@ class UserApi { this._fbapp = firebaseApp; this.db = firebaseApp.db; this.auth = firebaseApp.app.auth(); - this.auth.setPersistence(auth.Auth.Persistence.SESSION); + this.auth.setPersistence(firebase.auth.Auth.Persistence.SESSION); this.functions = this._fbapp.app.functions(); } @@ -228,7 +232,7 @@ class UserApi { async update_user_XP(uid: string, XP: number) { let userRef = await this.db.collection('users').doc(uid); return userRef.update({ - XP: firestore.FieldValue.increment(XP) + XP: firebase.firestore.FieldValue.increment(XP) }); } @@ -275,8 +279,8 @@ class UserApi { async add_eventXP_to_user(uid: string, eventId: string, eventXP: number) { let userRef = await this.db.collection('users').doc(uid); userRef.update({ - XP: firestore.FieldValue.increment(eventXP), - xp_history: firestore.FieldValue.arrayUnion({id: eventId, xp: eventXP}), + XP: firebase.firestore.FieldValue.increment(eventXP), + xp_history: firebase.firestore.FieldValue.arrayUnion({id: eventId, xp: eventXP}), }); // let userRef = await this.db.collection('users').doc(uid); @@ -450,7 +454,7 @@ class UserApi { // we don't /need/ to wait for completion. promises.push(this.db.collection('usergroups').doc(element).collection("members").doc(user).set({})); }); - await this.db.collection('users').doc(user).update({groups: firestore.FieldValue.arrayUnion(groups)}); + await this.db.collection('users').doc(user).update({groups: firebase.firestore.FieldValue.arrayUnion(groups)}); //wait for completion await promises; return true; @@ -460,7 +464,7 @@ class UserApi { async addUserToGroup(uid: string, group: string) { // update the user's doc - let p1 = this.db.collection('users').doc(uid).update({groups: firestore.FieldValue.arrayUnion(group)}); + let p1 = this.db.collection('users').doc(uid).update({groups: firebase.firestore.FieldValue.arrayUnion(group)}); let p2 = this.db.collection('usergroups').doc(group).collection("members").doc(uid).set({}); await p1 .then(() => { @@ -509,7 +513,7 @@ class UserApi { // approve & add if (response === 1) { this.db.collection('usergroups').doc(name).collection('members').doc(uid).set({}); - this.db.collection('users').doc(this.get_current_uid()).update({groups: firestore.FieldValue.arrayUnion(name)}) + this.db.collection('users').doc(this.get_current_uid()).update({groups: firebase.firestore.FieldValue.arrayUnion(name)}) } // no matter what, just delete the request this.db.collection('usergroups').doc(name).collection('join_requests').doc(uid).delete(); @@ -530,7 +534,7 @@ class UserApi { if (perm) { // start the update operation - const comp_promise = this.db.collection('users').doc(user).update({groups: firestore.FieldValue.arrayRemove(groups)}); + const comp_promise = this.db.collection('users').doc(user).update({groups: firebase.firestore.FieldValue.arrayRemove(groups)}); // delete from groups groups.forEach(element => { this.db.collection("usergroups").doc(element).collection("members").doc(user).delete(); diff --git a/frontend/src/components/Footer/Navigation.css b/frontend/src/components/Footer/Navigation.css new file mode 100644 index 00000000..92e1a44a --- /dev/null +++ b/frontend/src/components/Footer/Navigation.css @@ -0,0 +1,20 @@ +/**** + Used for both navigation bar at top and footer + ****/ + +.main { + background: #001629; +} + +.navbar, .navbar-default { + color: white !important; +} + + +.nav-link { + color: white ; +} + +.nav-link:hover { + color: #338AFC; +} diff --git a/frontend/src/components/Footer/icon.png b/frontend/src/components/Footer/icon.png new file mode 100644 index 00000000..0b6298cc Binary files /dev/null and b/frontend/src/components/Footer/icon.png differ diff --git a/frontend/src/components/Footer/index.js b/frontend/src/components/Footer/index.js new file mode 100644 index 00000000..ab263bf0 --- /dev/null +++ b/frontend/src/components/Footer/index.js @@ -0,0 +1,90 @@ +import React from "react"; +import Nav from "react-bootstrap/Nav"; +import Navbar from "react-bootstrap/Navbar"; +import { Col, Row } from "react-bootstrap"; +import { FaFacebookF, FaInstagram } from "react-icons/fa"; +import "./Navigation.css"; +import icon from "./icon.png"; + +import * as ROUTES from "../../config/routes"; + +var divPadding = { + paddingTop: "4em", +}; + +export default class Footer extends React.Component { + render() { + return ( +
+ + + + + DSGT icon + + + {/*column 1*/} + +
    + About Us + + Contact + + Terms & Conditions +
+ + {/*column 2*/} + +
    + + + Facebook + + + + Instagram + +
+ + {/*column 3*/} + +
    + {/*Start a Chapter */} + {/*Donate*/} + Sponsor Us +
+ + {/*column 4*/} + +
    + + 220 Ferst Dr NW, Atlanta, GA 30318 + hello@datasciencegt.org + +
+ +
+
+ + + +

+ ©{new Date().getFullYear()} Data Science Initiative, Inc. +

+
+
+
+
+ ); + } +} diff --git a/frontend/src/components/Landing Page/Future/background.jpg b/frontend/src/components/Landing Page/Future/background.jpg new file mode 100755 index 00000000..46b03ca8 Binary files /dev/null and b/frontend/src/components/Landing Page/Future/background.jpg differ diff --git a/frontend/src/components/Landing Page/Future/index.js b/frontend/src/components/Landing Page/Future/index.js new file mode 100755 index 00000000..a8f6befb --- /dev/null +++ b/frontend/src/components/Landing Page/Future/index.js @@ -0,0 +1,75 @@ +import React from "react"; +import { Container, Row } from 'react-bootstrap'; +import Card from 'react-bootstrap/Card'; +import CardDeck from 'react-bootstrap/CardDeck'; +import background from './background.jpg'; + +let backgroundImg = { + backgroundImage: `url(${background})`, + backgroundSize: 'cover', + color: "white", +} +let divPadding = { + padding: "4em 0 4em 0", + color: "white", + background: 'linear-gradient(to top, rgba(0,22,41,0.95), rgba(0,22,41,0.9), rgba(0,99,185,0.85), rgba(0,99,185,0.8))', + height: "inherit", + +} + +let divPaddingInner = { + padding: "0 0 2em 0", +} + +let blue = { + backgroundColor: "inherit", + border: "none", +} + +let align = { + alignItems: "center", + textAlign: "center", +} + + +export default class Future extends React.Component { + render() { + return( +
+
+ +

The Future

+
+ + + +

Data Science Today

+ + Coming Soon + +
+
+ + +

Target Goals

+ + Coming Soon + +
+
+ + +

Reach

+ + Coming Soon + +
+
+
+
+
+
+
+ ); + } +} diff --git a/frontend/src/components/Landing Page/GetInvolved/index.js b/frontend/src/components/Landing Page/GetInvolved/index.js new file mode 100755 index 00000000..9ea86373 --- /dev/null +++ b/frontend/src/components/Landing Page/GetInvolved/index.js @@ -0,0 +1,92 @@ +import React from "react"; +import { Button, Container, Row } from "react-bootstrap"; +import Card from "react-bootstrap/Card"; +import CardDeck from "react-bootstrap/CardDeck"; + +let divPadding = { + padding: "4em 0 4em 0", +}; + +let divPaddingInner = { + padding: "2em 0 2em 0", +}; + +let blue = { + color: "#0063B9", +}; + +export default class GetInvolved extends React.Component { + render() { + return ( +
+ + +

Get Involved

+
+
+ + + + +

Donate

+
+ + As a nonprofit, we rely on donations to keep us running. + Right now, we're an all-volunteer staff but we have + operational costs just like any company. Your donation will + go towards helping expand our operations, increasing the + quality of our materials, and allowing our staff to keep + doing their job. Any donation, big or small, is an + incredible help. + +
+ {/* */} +
+
+
+ + + +

Become a Chapter

+
+ + If you want to help bring the resources DSI has to offer to + your community, consider starting a chapter! If you do start + a chapter, you'll gain access to our bootcamp material, + logistics expertise, funding, and sponsors. We'll help you + set up a club that creates lasting value for your community + – all you have to do is ask! Although new chapters are + currently invitation-only, we'll be opening applications for + new chapters online by January 2022. In the meantime, you + can email us to let us know you're interested. + +
+ {/* */} +
+
+
+ + + +

Sponsor Us

+
+ + Sponsorships are our main source of funding, and we rely on + benevolent organizations to continue our operations. All of + our sponsors get recognized on our website, and have our + gratitude! If you or your company are interested in + sponsoring us, thank you! {/*Click below to find out more + information. */} + +
+ {/* */} +
+
+
+
+
+
+
+ ); + } +} diff --git a/frontend/src/components/Landing Page/Hero/background.jpg b/frontend/src/components/Landing Page/Hero/background.jpg new file mode 100755 index 00000000..ec6743a0 Binary files /dev/null and b/frontend/src/components/Landing Page/Hero/background.jpg differ diff --git a/frontend/src/components/Landing Page/Hero/index.js b/frontend/src/components/Landing Page/Hero/index.js new file mode 100644 index 00000000..3daca83a --- /dev/null +++ b/frontend/src/components/Landing Page/Hero/index.js @@ -0,0 +1,82 @@ +import React from "react"; +import { Container, Button } from "react-bootstrap"; +import background from "./background.jpg"; +import * as ROUTES from "../../../config/routes"; +/////////////////////// +// STYLES +/////////////////////// +let backgroundImg = { + backgroundImage: `url(${background})`, + // height: "100%", + height: "80vh", + backgroundSize: "cover", + color: "white", +}; + +let backgroundTint = { + height: "inherit", + // background: 'rgba(0,99,185,0.75)', + background: + "linear-gradient(to bottom, rgba(0,22,41,1), rgba(0,22,41,0.7), rgba(0,99,185,0.7), rgba(0,99,185,0.7))", +}; + +let textStyle = { + padding: "8vw", + paddingTop: "25vh", + alignItems: "center", + textAlign: "center", + opacity: "1", +}; + +let linkColor = { + color: "lightblue", +}; + +let linkStyle = { + alignItems: "center", + textAlign: "center", +} + +/////////////////////// +// CLASSES +/////////////////////// + +export default class Landing extends React.Component { + render() { + return ( +
+
+ +

MAKING DATA SCIENCE ACCESSIBLE TO ALL

+

+ {" "} + Join our mission: apply{" "} + + here{" "} + +

+ {/**/} + +
+
+
+ ); + } +} diff --git a/frontend/src/components/Home Page/HomePage.css b/frontend/src/components/Landing Page/LandingPage.css similarity index 100% rename from frontend/src/components/Home Page/HomePage.css rename to frontend/src/components/Landing Page/LandingPage.css diff --git a/frontend/src/components/Landing Page/MeetTeam/index.js b/frontend/src/components/Landing Page/MeetTeam/index.js new file mode 100755 index 00000000..f6f8765b --- /dev/null +++ b/frontend/src/components/Landing Page/MeetTeam/index.js @@ -0,0 +1,63 @@ +import React from 'react'; +import { Button, Col, Container, Row } from 'react-bootstrap'; +import Image from 'react-bootstrap/Image'; +import team from './team.png'; +import * as ROUTES from "../../../config/routes"; + +/////////////////////// +// STYLES +/////////////////////// + +let rowStyle = { + verticalAlign: "center", + color: "white", + backgroundColor: "#0063B9", + overflow: "hidden", +} + +let picContainer = { + maxHeight: "70vh", +} + +let teamStyle = { + width: "100%", + +} + +let textStyle = { + padding: "15vh 6vw 0 2vw", +} + +/////////////////////// +// CLASSES +/////////////////////// + +export default class MeetTeam extends React.Component { + render() { + return ( +
+ + +
+ The team +
+ + + +

Meet the Team

+

Data Science @ Georgia Tech started as a small club at the + Georgia Institute of Technology for spreading awareness and + education about data science. It has since morphed into a + massive program that reaches over 200 people every year and + draws over 100 people to each of its main events. DSGT provides + students with workshops, project opportunities, and + leadership opportunities to help train the next generation + of data scientists.

+ +
+ +
+
+ ); + } +} diff --git a/frontend/src/components/Landing Page/MeetTeam/team.png b/frontend/src/components/Landing Page/MeetTeam/team.png new file mode 100755 index 00000000..bb82768f Binary files /dev/null and b/frontend/src/components/Landing Page/MeetTeam/team.png differ diff --git a/frontend/src/components/Landing Page/Opportunity/index.js b/frontend/src/components/Landing Page/Opportunity/index.js new file mode 100755 index 00000000..6d69e3fe --- /dev/null +++ b/frontend/src/components/Landing Page/Opportunity/index.js @@ -0,0 +1,85 @@ +import React from "react"; +import { Container, Row } from "react-bootstrap"; +import Card from "react-bootstrap/Card"; +import CardDeck from "react-bootstrap/CardDeck"; + +/// make a global stylesheet for this div and divpadding +let divPadding = { + padding: "4em 0 4em 0", +}; + +let divPaddingInner = { + padding: "0 0 2em 0", +}; + +let noBorder = { + border: "none", +}; + +let blue = { + color: "#0063B9", +}; + +let align = { + alignItems: "center", + textAlign: "center", +}; + +export default class Opportunity extends React.Component { + render() { + return ( +
+ + +

The Opportunity

{" "} +
+
+ + + + +

Data Science Today

+
+ Coming Soon +
{" "} + {/*Data Science Today*/} +
+ + + +

Our Niche

+
+ Coming Soon +
{" "} + {/*Our Niche*/} {/*Our Niche*/} +
+ + + +

Reach

+
+ Coming Soon +
{" "} + {/*Reach*/} +
+
+
+ + + {" "} + {/*this is the quote card*/} +
+

β€œAbove all else, show the data.”

+ +
+
+
+
+ ); + } +} diff --git a/frontend/src/components/Landing Page/Quotes/index.js b/frontend/src/components/Landing Page/Quotes/index.js new file mode 100644 index 00000000..c1ded0c7 --- /dev/null +++ b/frontend/src/components/Landing Page/Quotes/index.js @@ -0,0 +1,91 @@ +import React from "react"; +import { Col, Container, Row } from "react-bootstrap"; +import { Thumbs } from "react-responsive-carousel"; +import * as ROUTES from "../../../config/routes"; +import quotepic from './quote.png'; + +let quotes = [ + "β€œStatistics are like bikinis. What they reveal is suggestive, but what they conceal is vital.” β€”Aaron Levenstein", + "β€œIf you can’t explain it simply, you don’t understand it well enough.” β€”Albert Einstein", + "β€œIn the end you should only measure and look at the numbers that drive action, meaning that the data tells you what you should do next.” β€”Alexander Peiniger", + "β€œIt is very common to find that the data to support many of the business information needs is simply not available at the levels required, or that it is of such bad quality that it is impossible to use. Resolution of these types of issues often requires fundamental changes to business processes.” β€”Alison Newell", + "β€œIt’s easy to lie with statistics It’s hard to tell the truth without statistics.” β€”Andrejs Dunkels", + "β€œThe world is one big data problem.” β€”Andrew McAfee", +] + +let switchTime = 60; //in minutes + +let chunk = { + padding: "4em 1em", + //border: "1px solid red", +}; + +let divPadding = { + padding: "4em 0 4em 0", +}; + +let blue = { + color: "#0063B9", +}; + +let h1style = { + fontSize: "20px", +}; + +export default class WhatWeDo extends React.Component { + constructor() { + super(); + this.state = {loading: true, img: 0} + } + + changeQuote = () => { + if (this.state.img >= (quotes.length - 1)) { + this.setState({img: 0}); + } else { + this.setState({img: this.state.img+1}) + } + } + + async componentDidMount() { + this.setState({loading:false}); + setInterval(() => { + this.changeQuote(); + }, 1000 * 60 * switchTime) + } + + render() { + if(this.state.loading){ + return ( +

loading...

+ ) + } + + const { + img + } = this.state; + + return ( +
+
+ + {/*centered column with quotes*/} + + + + + quote + + + + +

{quotes[img]}

+ +
+ +
+
+
+
+ ); + } +} diff --git a/frontend/src/components/Landing Page/Quotes/quote.png b/frontend/src/components/Landing Page/Quotes/quote.png new file mode 100644 index 00000000..cec7c884 Binary files /dev/null and b/frontend/src/components/Landing Page/Quotes/quote.png differ diff --git a/frontend/src/components/Landing Page/WhatWeDo/gears.png b/frontend/src/components/Landing Page/WhatWeDo/gears.png new file mode 100755 index 00000000..b170381a Binary files /dev/null and b/frontend/src/components/Landing Page/WhatWeDo/gears.png differ diff --git a/frontend/src/components/Landing Page/WhatWeDo/hand.png b/frontend/src/components/Landing Page/WhatWeDo/hand.png new file mode 100755 index 00000000..cc3a2fdb Binary files /dev/null and b/frontend/src/components/Landing Page/WhatWeDo/hand.png differ diff --git a/frontend/src/components/Landing Page/WhatWeDo/index.js b/frontend/src/components/Landing Page/WhatWeDo/index.js new file mode 100755 index 00000000..6cd4fff5 --- /dev/null +++ b/frontend/src/components/Landing Page/WhatWeDo/index.js @@ -0,0 +1,133 @@ +import React from "react"; +import { Col, Container, Row } from "react-bootstrap"; +import gears from "./gears.png"; +import hand from "./hand.png"; +import project from "./project.png"; +import search from "./search.png"; +import theory from "./theory.png"; +import * as ROUTES from "../../../config/routes"; + +let picContainer = { + height: "30vh", + padding: "1em", +}; + +let chunk = { + padding: "2em 1em 2em 1em", +}; + +let divPadding = { + padding: "4em 0 4em 0", +}; + +let blue = { + color: "#0063B9", +}; + +export default class WhatWeDo extends React.Component { + render() { + return ( +
+
+ + {/* Row: image on left */} + + +
+ gears icon +
+ + +

Providing Foundation

+

+ We teach our members core data science skills through a + bootcamp that takes our members on a start-to-finish journey, + touching on essentials such as cleaning data and identifying + biases to more advanced concepts, such as dimensionality + reduction and machine learning – all in a digestible, + applicable, and interactive format. Members come out of our + bootcamp with a polished data science project and the + confidence to learn more. +

+ +
+ {/* Row: image on right */} + {/* + +

Providing Practical Education

+

+ After our foundational content, we give our members the + opportunity to expand their practical and theoretical skills + through bootcamps tailored to specific concentrations of + learning. Data Science is more than just programming; we're + equipping our members to apply their skills in the fields of + Healthcare, Finance, Data Engineering, Data Visualization, & + more! +

+ + +
+ hand icon +
+ +
+ {/* Row: iamge on left */} + {/* + +
+ theory icon +
+ + +

Promoting Inquisitiveness

+

+ Our members are bright and talented students. Our goal is to + help them continue to learn and grow through thoughtful and + engaging conversations surrounding data science. +

+ +
+ {/* Row: iamge on right */} + + +

Providing Opportunity

+

+ We assist chapters and individuals in starting and running + local data science projects to offer students an opportunity + to work in a team and exercise their skills. We also organize + a yearly hackathon, Hacklytics, for those of all skill levels + to hone in our their data science skills.{" "} + View our ongoing projects +

+ + +
+ project icon +
+ +
+ {/* Row: iamge on left */} + + +
+ search icon +
+ + +

Providing a Future

+

+ DSGT arranges projects with corporate sponsors to allow + members to work on real life data science problems full-time + or part-time all while getting paid. We also organize company + events and talks that allow our members to build a network and + learn more about the professional opportunities in the field + of data science.{" "} +

+ +
+
+
+
+ ); + } +} diff --git a/frontend/src/components/Landing Page/WhatWeDo/project.png b/frontend/src/components/Landing Page/WhatWeDo/project.png new file mode 100755 index 00000000..b198f4d8 Binary files /dev/null and b/frontend/src/components/Landing Page/WhatWeDo/project.png differ diff --git a/frontend/src/components/Landing Page/WhatWeDo/search.png b/frontend/src/components/Landing Page/WhatWeDo/search.png new file mode 100755 index 00000000..724aeb78 Binary files /dev/null and b/frontend/src/components/Landing Page/WhatWeDo/search.png differ diff --git a/frontend/src/components/Landing Page/WhatWeDo/theory.png b/frontend/src/components/Landing Page/WhatWeDo/theory.png new file mode 100755 index 00000000..d20c3424 Binary files /dev/null and b/frontend/src/components/Landing Page/WhatWeDo/theory.png differ diff --git a/frontend/src/components/Home Page/__tests__/HomePage.test.js b/frontend/src/components/Landing Page/__tests__/HomePage.test.js similarity index 100% rename from frontend/src/components/Home Page/__tests__/HomePage.test.js rename to frontend/src/components/Landing Page/__tests__/HomePage.test.js diff --git a/frontend/src/components/Home Page/index.js b/frontend/src/components/Landing Page/index.js similarity index 77% rename from frontend/src/components/Home Page/index.js rename to frontend/src/components/Landing Page/index.js index 4c5d8b21..b0da97cd 100644 --- a/frontend/src/components/Home Page/index.js +++ b/frontend/src/components/Landing Page/index.js @@ -3,13 +3,20 @@ import {Container, Row, Col, Table, Button} from 'react-bootstrap'; import * as CONSTANTS from "../../config/config"; import { Carousel } from 'react-responsive-carousel'; import "react-responsive-carousel/lib/styles/carousel.min.css"; -import './HomePage.css'; +import Hero from './Hero'; +import WhatWeDo from './WhatWeDo'; +import Quotes from './Quotes'; +import MeetTeam from './MeetTeam'; +import GetInvolved from './GetInvolved'; +import Future from './Future'; +import Opportunity from './Opportunity'; +import Footer from "../Footer"; +import './LandingPage.css'; /** * This is the homepage of the website. * Split up into React Fragments to provide modularity. */ - /** * @author Raj Shrimali and Vidhur Kumar */ @@ -31,65 +38,53 @@ import './HomePage.css'; } } -/** - * - */ -const Hero = () => { +// /** +// * +// */ +// const About = () => { return ( +//
+// +//

The Big Ideas

+//
+// +//

Provide

+// +//

+// Data science has the potential to improve our communities, so we run projects with that sole purpose. Our +// projects are chosen because of their potential impact, both on our campus and the global community at large. +// We don't want our members to be hindered by lack of money, so our featured projects receive funding for +// resources that are crucial to their success.
- return( -

-
-
-
-)} - -/** - * - */ -const About = () => { return ( -
- -

The Big Ideas

-
- -

Provide

- -

- Data science has the potential to improve our communities, so we run projects with that sole purpose. Our - projects are chosen because of their potential impact, both on our campus and the global community at large. - We don't want our members to be hindered by lack of money, so our featured projects receive funding for - resources that are crucial to their success.
- - We recognize a good idea can come from anywhere, so we encourage our members to pursue their own projects. - Member-initiated projects receive the support of the club, and if they satisfy our community-oriented criteria, - may receive funding. -

- -
- -

Inform

- -

- Data science is a hard field to get into, and can be intimidating for those who are unfamiliar with it. - To make the learning process easier for our members, we host weekly workshops that let them interactively get - familiar with data science. We also host monthly public workshops that help those who are interested learn more - about the field and get their feet wet with basic data science skills. -

- -
- -

Grow

- -

- We want our members to be well-prepared for their future. After all, we are nothing without them! - Our special events include corporate information sessions, game nights, and networking events that - allow our members to devleop themselves professionally. We are also planning on hosting a data-science-oriented - hackathon in Spring 2019. -

- -
-
-)}; +// We recognize a good idea can come from anywhere, so we encourage our members to pursue their own projects. +// Member-initiated projects receive the support of the club, and if they satisfy our community-oriented criteria, +// may receive funding. +//

+// +//
+// +//

Inform

+// +//

+// Data science is a hard field to get into, and can be intimidating for those who are unfamiliar with it. +// To make the learning process easier for our members, we host weekly workshops that let them interactively get +// familiar with data science. We also host monthly public workshops that help those who are interested learn more +// about the field and get their feet wet with basic data science skills. +//

+// +//
+// +//

Grow

+// +//

+// We want our members to be well-prepared for their future. After all, we are nothing without them! +// Our special events include corporate information sessions, game nights, and networking events that +// allow our members to devleop themselves professionally. We are also planning on hosting a data-science-oriented +// hackathon in Spring 2019. +//

+// +//
+//
+// )}; /** * @@ -292,18 +287,18 @@ const Meetings = () => { /** * @author Raj Shrimali and Vidhur Kumar */ -export default class HomePage extends React.Component { +export default class LandingPage extends React.Component { render() { return ( - - - - - {/* */} - - + + + + {/**/} + {/**/} + {/**/} +