diff --git a/client/package-lock.json b/client/package-lock.json
index 4592df4bbca6f29ed160c3af6c7f2142f2ce8e35..47dbb9b38ae6d412741cedea386ff06e9413b99e 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -10,18 +10,22 @@
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
+ "axios": "^0.21.1",
"bootstrap": "^4.6.0",
"chart.js": "^3.4.0",
"moment": "^2.29.1",
+ "ngx-spinner": "^12.0.0",
"node-sass": "^6.0.1",
"react": "^17.0.2",
"react-bootstrap": "^1.6.1",
"react-chartjs-2": "^3.0.3",
+ "react-copy-to-clipboard": "^5.0.3",
"react-dom": "^17.0.2",
"react-google-login": "^5.2.2",
"react-kakao-login": "^2.1.0",
"react-live-clock": "^5.2.0",
"react-moment": "^1.1.1",
+ "react-redux": "^7.2.4",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"react-use": "^17.2.4",
@@ -29,6 +33,38 @@
"web-vitals": "^1.1.2"
}
},
+ "node_modules/@angular/common": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.1.1.tgz",
+ "integrity": "sha512-NnRwGMatzjthvDQ4+8tm09Ak5i27Qga8x4BdzINN1RjLmzQ0zW00Mn2AUGYEDZHt9HXVHff5stsZGqj+Ne4QJw==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.2.0"
+ },
+ "engines": {
+ "node": "^12.14.1 || >=14.0.0"
+ },
+ "peerDependencies": {
+ "@angular/core": "12.1.1",
+ "rxjs": "^6.5.3"
+ }
+ },
+ "node_modules/@angular/core": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.1.1.tgz",
+ "integrity": "sha512-7Q4na8zCXi4ITBG8kgbS+vnnVK0GDU2WXU80/il096+8YPFKfj6MyDWZH79KA3jrIg9/yhLwSQx8x8wnj8dqBA==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.2.0"
+ },
+ "engines": {
+ "node": "^12.14.1 || >=14.0.0"
+ },
+ "peerDependencies": {
+ "rxjs": "^6.5.3",
+ "zone.js": "~0.11.4"
+ }
+ },
"node_modules/@babel/code-frame": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
@@ -3503,6 +3539,15 @@
"@types/node": "*"
}
},
+ "node_modules/@types/hoist-non-react-statics": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
+ "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
+ "dependencies": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
"node_modules/@types/html-minifier-terser": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
@@ -3608,6 +3653,17 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/@types/react-redux": {
+ "version": "7.1.16",
+ "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.16.tgz",
+ "integrity": "sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw==",
+ "dependencies": {
+ "@types/hoist-non-react-statics": "^3.3.0",
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0",
+ "redux": "^4.0.0"
+ }
+ },
"node_modules/@types/react-transition-group": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz",
@@ -4606,6 +4662,14 @@
"node": ">=4"
}
},
+ "node_modules/axios": {
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+ "dependencies": {
+ "follow-redirects": "^1.10.0"
+ }
+ },
"node_modules/axobject-query": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
@@ -14457,6 +14521,18 @@
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
+ "node_modules/ngx-spinner": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/ngx-spinner/-/ngx-spinner-12.0.0.tgz",
+ "integrity": "sha512-0BIaLQDBwNApdSWfKYnYA4hSpfgd2bZ9ptBTB+1tOYJHULg67TRqVYswR6H4tNqmGfA8KNivTYXcY7/6RkyjyA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ },
+ "peerDependencies": {
+ "@angular/common": "^12.0.0",
+ "@angular/core": "^12.0.0"
+ }
+ },
"node_modules/nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -17247,6 +17323,18 @@
"react": "^16.8.0 || ^17.0.0"
}
},
+ "node_modules/react-copy-to-clipboard": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.3.tgz",
+ "integrity": "sha512-9S3j+m+UxDZOM0Qb8mhnT/rMR0NGSrj9A/073yz2DSxPMYhmYFBMYIdI2X4o8AjOjyFsSNxDRnCX6s/gRxpriw==",
+ "dependencies": {
+ "copy-to-clipboard": "^3",
+ "prop-types": "^15.5.8"
+ },
+ "peerDependencies": {
+ "react": "^15.3.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
"node_modules/react-dev-utils": {
"version": "11.0.4",
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz",
@@ -17498,6 +17586,35 @@
"node": ">=6.9.0"
}
},
+ "node_modules/react-redux": {
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.4.tgz",
+ "integrity": "sha512-hOQ5eOSkEJEXdpIKbnRyl04LhaWabkDPV+Ix97wqQX3T3d2NQ8DUblNXXtNMavc7DpswyQM6xfaN4HQDKNY2JA==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.1",
+ "@types/react-redux": "^7.1.16",
+ "hoist-non-react-statics": "^3.3.2",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.13.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.3 || ^17"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-redux/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
"node_modules/react-refresh": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
@@ -17892,6 +18009,14 @@
"node": ">=8"
}
},
+ "node_modules/redux": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz",
+ "integrity": "sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g==",
+ "dependencies": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
"node_modules/regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -18495,6 +18620,24 @@
"aproba": "^1.1.1"
}
},
+ "node_modules/rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/rxjs/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "peer": true
+ },
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -23370,9 +23513,36 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/zone.js": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz",
+ "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.0.0"
+ }
}
},
"dependencies": {
+ "@angular/common": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.1.1.tgz",
+ "integrity": "sha512-NnRwGMatzjthvDQ4+8tm09Ak5i27Qga8x4BdzINN1RjLmzQ0zW00Mn2AUGYEDZHt9HXVHff5stsZGqj+Ne4QJw==",
+ "peer": true,
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
+ "@angular/core": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.1.1.tgz",
+ "integrity": "sha512-7Q4na8zCXi4ITBG8kgbS+vnnVK0GDU2WXU80/il096+8YPFKfj6MyDWZH79KA3jrIg9/yhLwSQx8x8wnj8dqBA==",
+ "peer": true,
+ "requires": {
+ "tslib": "^2.2.0"
+ }
+ },
"@babel/code-frame": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
@@ -25805,6 +25975,15 @@
"@types/node": "*"
}
},
+ "@types/hoist-non-react-statics": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
+ "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
+ "requires": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
"@types/html-minifier-terser": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
@@ -25910,6 +26089,17 @@
"csstype": "^3.0.2"
}
},
+ "@types/react-redux": {
+ "version": "7.1.16",
+ "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.16.tgz",
+ "integrity": "sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw==",
+ "requires": {
+ "@types/hoist-non-react-statics": "^3.3.0",
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0",
+ "redux": "^4.0.0"
+ }
+ },
"@types/react-transition-group": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz",
@@ -26690,6 +26880,14 @@
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.3.tgz",
"integrity": "sha512-pXnVMfJKSIWU2Ml4JHP7pZEPIrgBO1Fd3WGx+fPBsS+KRGhE4vxooD8XBGWbQOIVSZsVK7pUDBBkCicNu80yzQ=="
},
+ "axios": {
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+ "requires": {
+ "follow-redirects": "^1.10.0"
+ }
+ },
"axobject-query": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
@@ -34251,6 +34449,14 @@
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
+ "ngx-spinner": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/ngx-spinner/-/ngx-spinner-12.0.0.tgz",
+ "integrity": "sha512-0BIaLQDBwNApdSWfKYnYA4hSpfgd2bZ9ptBTB+1tOYJHULg67TRqVYswR6H4tNqmGfA8KNivTYXcY7/6RkyjyA==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -36462,6 +36668,15 @@
"lodash": "^4.17.19"
}
},
+ "react-copy-to-clipboard": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.3.tgz",
+ "integrity": "sha512-9S3j+m+UxDZOM0Qb8mhnT/rMR0NGSrj9A/073yz2DSxPMYhmYFBMYIdI2X4o8AjOjyFsSNxDRnCX6s/gRxpriw==",
+ "requires": {
+ "copy-to-clipboard": "^3",
+ "prop-types": "^15.5.8"
+ }
+ },
"react-dev-utils": {
"version": "11.0.4",
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz",
@@ -36654,6 +36869,26 @@
}
}
},
+ "react-redux": {
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.4.tgz",
+ "integrity": "sha512-hOQ5eOSkEJEXdpIKbnRyl04LhaWabkDPV+Ix97wqQX3T3d2NQ8DUblNXXtNMavc7DpswyQM6xfaN4HQDKNY2JA==",
+ "requires": {
+ "@babel/runtime": "^7.12.1",
+ "@types/react-redux": "^7.1.16",
+ "hoist-non-react-statics": "^3.3.2",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.13.1"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ }
+ }
+ },
"react-refresh": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
@@ -36974,6 +37209,14 @@
"strip-indent": "^3.0.0"
}
},
+ "redux": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz",
+ "integrity": "sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g==",
+ "requires": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
"regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -37448,6 +37691,23 @@
"aproba": "^1.1.1"
}
},
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "peer": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "peer": true
+ }
+ }
+ },
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -41351,6 +41611,15 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
+ },
+ "zone.js": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz",
+ "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==",
+ "peer": true,
+ "requires": {
+ "tslib": "^2.0.0"
+ }
}
}
}
diff --git a/client/package.json b/client/package.json
index 17e6cf80928d0a6f1f8da06915fd5bceba0e512c..2378857d1cec94fe07519b8b35b54b7c8473dac0 100644
--- a/client/package.json
+++ b/client/package.json
@@ -6,18 +6,22 @@
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
+ "axios": "^0.21.1",
"bootstrap": "^4.6.0",
"chart.js": "^3.4.0",
"moment": "^2.29.1",
+ "ngx-spinner": "^12.0.0",
"node-sass": "^6.0.1",
"react": "^17.0.2",
"react-bootstrap": "^1.6.1",
"react-chartjs-2": "^3.0.3",
+ "react-copy-to-clipboard": "^5.0.3",
"react-dom": "^17.0.2",
"react-google-login": "^5.2.2",
"react-kakao-login": "^2.1.0",
"react-live-clock": "^5.2.0",
"react-moment": "^1.1.1",
+ "react-redux": "^7.2.4",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"react-use": "^17.2.4",
diff --git a/client/public/index.html b/client/public/index.html
index 4c90be487676a2fe005d73fdbd65b12880a0e8ad..c712be6236a73a6c7f7bda3ff202b886bb93d198 100644
--- a/client/public/index.html
+++ b/client/public/index.html
@@ -7,7 +7,7 @@
-
+
EUE, make your day
-
-
+
+
diff --git a/client/public/manifest.json b/client/public/manifest.json
index 080d6c77ac21bb2ef88a6992b2b73ad93daaca92..61c5b6fae21fbc2878dc4ebe6e11b4fecbf43220 100644
--- a/client/public/manifest.json
+++ b/client/public/manifest.json
@@ -8,7 +8,7 @@
"type": "image/x-icon"
},
{
- "src": "logo192.png",
+ "src": "images/Kakao.png",
"type": "image/png",
"sizes": "192x192"
},
diff --git a/client/src/App.css b/client/src/App.css
index 969040a60c1fd7c9c474a0e056b23d1ea767eea4..efa848dadbf1a8e140ceb8027d814a4006ad3a50 100644
--- a/client/src/App.css
+++ b/client/src/App.css
@@ -2,13 +2,21 @@
body {
font-family: "Noto Sans KR", sans-serif !important;
-
+
}
+
.a:hover {
color: white;
}
-.btn:active {
- color : rgb(250, 220, 0);
+
+.btn-primary:active {
+ outline: white !important;
+ border-color: white !important;
+}
+
+.card .card-title {
+ color: rgb(109, 110, 109);
+ /* background-color: ; */
}
.form-group .form-control {
@@ -19,6 +27,7 @@ body {
border-radius: 40px;
background-color: rgb(110, 189, 142);
border-color: ivory;
+ color: white;
}
#logpng {
diff --git a/client/src/App.js b/client/src/App.js
index f31d140eb4f7cf8821d4d3549c069e81d441911e..529ad22cd5c9dbb52664994fce36ecfa06b76866 100644
--- a/client/src/App.js
+++ b/client/src/App.js
@@ -2,6 +2,7 @@ import React from 'react';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import './App.css';
import Home from './pages/Home';
+import Oauth from './components/Oauth';
function App() {
@@ -10,6 +11,7 @@ function App() {
<>
+
>
diff --git a/client/src/App.scss b/client/src/App.scss
deleted file mode 100644
index fc5b9c4f81131bf864fb2e108128129ec40228c2..0000000000000000000000000000000000000000
--- a/client/src/App.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-@media (max-width: 767.98px) {
- body {
- padding-top: 10px;
- padding-bottom: 10px;
- margin: 'auto'
-
- }
- }
-
-@media (min-width: 768px) {
- body {
- padding-top: 20px;
- padding-bottom: 20px;
- margin: 'auto'
-
- }
-
- }
\ No newline at end of file
diff --git a/client/src/components/ChartDoughnut.js b/client/src/components/ChartDoughnut.js
index 0fa24f46f4fcd32cd6a39e1c2c14b606442e7538..489646d12dd6b607f9e5d29aca26bd6ea33c2f80 100644
--- a/client/src/components/ChartDoughnut.js
+++ b/client/src/components/ChartDoughnut.js
@@ -3,15 +3,16 @@ import { Container, Row, Card, Table, Button } from 'react-bootstrap';
import { Doughnut } from 'react-chartjs-2'
function ChartDoughnut() {
- const fontstyl = {
+ const cardstyled = {
fontSize: '0.5em',
margin: 'auto',
padding: '1em',
display: 'flex',
justifyContent: 'center',
width: '100%',
- borderWidth: '2px',
- borderColor: 'rgba(195, 195, 195, 0.753)',
+ borderWidth: '1.5px',
+ borderRadius: '20px',
+ borderColor: '#04AB70',
color: 'rgb(110, 189, 142)'
}
const btnstyled = {
@@ -72,7 +73,7 @@ function ChartDoughnut() {
<>
-
+
-
+
- >
)
}
diff --git a/client/src/components/EueSuggest.js b/client/src/components/EueSuggest.js
index f94d3ea1a52a5e4a7aa9be2e1e8949d52df435f6..1406fe3efdb00b14a8fb234432ed7e0d966cc635 100644
--- a/client/src/components/EueSuggest.js
+++ b/client/src/components/EueSuggest.js
@@ -2,15 +2,16 @@ import React from 'react'
import { Container, Row, Card, Table, Button } from 'react-bootstrap';
function EueSuggest() {
- const fontstyl = {
+ const cardstyled = {
fontSize: '0.5em',
margin: 'auto',
padding: '1em',
display: 'flex',
justifyContent: 'center',
width: '100%',
- borderWidth: '2px',
- borderColor: 'rgba(195, 195, 195, 0.753)',
+ borderWidth: '1.5px',
+ borderRadius: '20px',
+ borderColor: '#04AB70',
color: 'rgb(110, 189, 142)'
}
const btnstyled = {
@@ -24,10 +25,8 @@ function EueSuggest() {
}
return (
-
- <>
-
+
EUE 제안
@@ -36,7 +35,6 @@ function EueSuggest() {
- >
)
}
diff --git a/client/src/components/Footer copy.js b/client/src/components/Footer copy.js
deleted file mode 100644
index 203fc54fcb92e6d59d4a1b915bbcce5c6b6c35cd..0000000000000000000000000000000000000000
--- a/client/src/components/Footer copy.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import React from 'react'
-import { Container, Row, Card, Table, Button } from 'react-bootstrap';
-import { Bar } from 'react-chartjs-2'
-
-function Footer2() {
- const fontstyl = {
- fontSize: '0.5em',
- margin: 'auto',
- padding: '1em',
- display: 'flex',
- justifyContent: 'center',
- width: '100%',
- borderWidth: '2px',
- borderColor: 'rgba(195, 195, 195, 0.753)',
- color: 'rgb(110, 189, 142)'
- }
- const btnstyled = {
- background: 'rgb(110, 189, 142)',
- margin: '1px',
- maxWidth: '100%',
- borderWidth: '2px',
- fontSize: '10px',
- borderColor: 'rgba(195, 195, 195, 0.753)',
- borderRadius: '20px',
- }
-
-
- return (
-
- <>
-
-
-
-
-
- >
- )
-}
-
-export default Footer2;
\ No newline at end of file
diff --git a/client/src/components/Footer.js b/client/src/components/Footer.js
index 131a72b8317c0b07c1466c62956b90586f1e14ea..5189c2cc4eb8d1c2a0ef32efc828d30d04c8c341 100644
--- a/client/src/components/Footer.js
+++ b/client/src/components/Footer.js
@@ -1,86 +1,121 @@
-import React from 'react'
-import { Container, Row, Card, Table, Button } from 'react-bootstrap';
-import { Bar } from 'react-chartjs-2'
+import React, { useEffect, useRef, useState } from 'react'
+import { Container, Row, Card, Table, Button, Col, Modal, ModalTitle, Overlay, Tooltip } from 'react-bootstrap';
+import { CopyToClipboard } from 'react-copy-to-clipboard';
+import '../App.css'
function Footer() {
- const fontstyl = {
+ const cardstyled = {
fontSize: '0.5em',
margin: 'auto',
padding: '1em',
display: 'flex',
justifyContent: 'center',
width: '100%',
- borderWidth: '2px',
- borderColor: 'rgba(195, 195, 195, 0.753)',
+ borderWidth: '1.5px',
+ borderRadius: '20px',
+ borderColor: '#04AB70',
color: 'rgb(110, 189, 142)'
}
+
const btnstyled = {
- background: 'rgb(110, 189, 142)',
+ background: 'white',
margin: '1px',
- maxWidth: '100%',
+ maxWidth: 'fit-content',
borderWidth: '2px',
fontSize: '10px',
+ color: 'rgb(110, 189, 142)',
borderColor: 'rgba(195, 195, 195, 0.753)',
borderRadius: '20px',
+
}
- const options = {
- legend: {
- display: true, // label 보이기 여부
- },
- scales: {
- yAxes: [{
- ticks: {
- min: 0, // y축 스케일에 대한 최소값 설정
- stepSize: 1, // y축 그리드 한 칸당 수치
- }
- }]
- },
+ const [donateShow, setDonateShow] = useState(false);
- // false : 사용자 정의 크기에 따라 그래프 크기가 결정됨.
- // true : 크기가 알아서 결정됨.
- maintainAspectRatio: false
+
+ function clickAndCopy() {
+ return new Promise((resolve) => setTimeout(resolve, 2000))
}
- const data = {
- labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
- datasets: [
- {
- label: '온도',
- fill: false,
- lineTension: 0.1,
- backgroundColor: 'rgba(75,192,192,0.4)',
- borderColor: 'rgba(75,192,192,1)',
- borderCapStyle: 'butt',
- borderDash: [2,10], //점선
- borderDashOffset: 0.0,
- borderJoinStyle: 'miter',
- pointBorderColor: 'rgba(75,192,192,1)',
- pointBackgroundColor: '#fff',
- pointBorderWidth: 1,
- pointHoverRadius: 5,
- pointHoverBackgroundColor: 'rgba(75,192,192,1)',
- pointHoverBorderColor: 'rgba(220,220,220,1)',
- pointHoverBorderWidth: 2,
- pointRadius: 1,
- pointHitRadius: 10,
- data: [-10, -2, 13, 18, 22, 25, 31, 28, 25, 18, 6, -8]
- }
- ]
- };
+
+ // function CopyShow() {
+ const [isCopyshow, setCopyShow] = useState(false);
+
+ useEffect(() => {
+ if (isCopyshow) {
+ clickAndCopy().then(() => {
+ setCopyShow(false);
+ });
+ }
+ }, [isCopyshow]);
+
+ // }
+ const handleClick = () => setCopyShow(true);
return (
+
+
+
+ 서버비용 후원하기
+
+
+ 이용하시는데 불편함이 없도록 광고 없이 운영하고 있습니다.
+ 서버비용 충당 후 후원금이 남을시 UNICEF 에 기부하겠습니다.
+
+
+
+ setDonateShow(false)}
+ style={{ top: '80px', left: '1vw' }}
+ >
+
+
+ Thank you for your Donation
+
+
+
+
+
+ 카카오뱅크
+
+
+
+ 박상호 3333-16-7299769
+
+
+
+
+
+
+
+
+
+
+ TEAM EUE : 안강민, 박상호, 박예은
+
+
+ © 2021 TEAM EUE. All rights reserved
+
+
- <>
-
-
-
-
-
- >
+
+
)
}
diff --git a/client/src/components/KakaoLogin.js b/client/src/components/KakaoLogin.js
deleted file mode 100644
index c8dca62661b26ec8c9880502edf175ce4375b609..0000000000000000000000000000000000000000
--- a/client/src/components/KakaoLogin.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// import React from 'react'
-// import { Image } from 'react-bootstrap'
-// import KaKaoLogin from 'react-kakao-login'
-
-// function KakaoLogin() {
-// // Kakao.Auth.login({
-// // success: function (authObj) {
-// // alert(JSON.stringify(authObj))
-// // },
-// // fail: function (err) {
-// // alert(JSON.stringify(err))
-// // },
-// // })
-// return (
-//
-//
-//
-// )
-// }
-
-// export default KakaoLogin;
\ No newline at end of file
diff --git a/client/src/components/MainLayer.js b/client/src/components/MainLayer.js
index e11895c1fbee05b0b4f1f9c5b81ec9f3e891ff5a..fc40edb423d8d08c4cbad6c55a9d98a282fdb439 100644
--- a/client/src/components/MainLayer.js
+++ b/client/src/components/MainLayer.js
@@ -15,7 +15,8 @@ function MainLayer() {
marginBottom: '1em',
width: '100%',
backgroundSize: 'contain',
- margin: 'auto'
+ margin: 'auto',
+ textDecorationColor: 'none'
}
const btnstyled = {
@@ -28,6 +29,8 @@ function MainLayer() {
fontSize: '10px',
borderColor: 'rgba(195, 195, 195, 0.753)',
borderRadius: '20px',
+ textDecorationColor: 'none',
+ color: 'white'
}
const loginstyled = {
@@ -47,6 +50,7 @@ function MainLayer() {
const [logshow, setLogshow] = useState(false);
const [signshow, setSignshow] = useState(false);
+ const [isLogin, setIsLogin] = useState(false)
return (
@@ -57,12 +61,13 @@ function MainLayer() {
-
+
-