From 9526dd25e6ac22eeffabf1d38d378334f3be0104 Mon Sep 17 00:00:00 2001 From: Hansoo Date: Sun, 26 Jul 2020 13:25:04 +0900 Subject: [PATCH] initial commit v1 --- .gitignore | 3 + README.md | 2 + client/.env | 1 + client/.env.production | 1 + client/.gitignore | 23 + client/README.md | 44 ++ client/package.json | 56 ++ client/public/favicon.ico | Bin 0 -> 137750 bytes client/public/index.html | 43 ++ client/public/manifest.json | 25 + client/public/robots.txt | 3 + client/src/App.css | 42 ++ client/src/App.test.tsx | 9 + client/src/App.tsx | 102 ++++ client/src/components/about.tsx | 28 + client/src/components/archive.tsx | 69 +++ client/src/components/contact.tsx | 61 +++ client/src/components/guide.tsx | 70 +++ client/src/components/home.tsx | 26 + client/src/components/notfound.tsx | 13 + client/src/components/players.tsx | 64 +++ client/src/components/scoreboard.tsx | 14 + client/src/components/tournaments.tsx | 14 + client/src/i18n.ts | 25 + client/src/index.css | 13 + client/src/index.tsx | 23 + client/src/locale/en.json | 9 + client/src/locale/ja.json | 9 + client/src/logo.svg | 7 + client/src/models/IArchiveItem.ts | 5 + client/src/models/IContactQuestion.ts | 5 + client/src/models/IGuideItem.ts | 6 + client/src/models/IPlayerInfo.ts | 10 + client/src/react-app-env.d.ts | 1 + client/src/serviceWorker.ts | 149 +++++ client/src/setupTests.ts | 5 + client/src/static/font/indieflower.ttf | Bin 0 -> 55300 bytes client/src/static/img/00_bluecap_1204.png | Bin 0 -> 191124 bytes client/src/static/img/00_redcap_1204.png | Bin 0 -> 190255 bytes .../src/static/img/01_sheep_vincent_1204.png | Bin 0 -> 185893 bytes client/src/static/img/01_vincent_1204.png | Bin 0 -> 203494 bytes client/src/static/img/02_katherine_1204.png | Bin 0 -> 230332 bytes client/src/static/img/03_catherine_1204.png | Bin 0 -> 204833 bytes client/src/static/img/04_rin_1204.png | Bin 0 -> 217550 bytes client/src/static/img/05_orlando_1204.png | Bin 0 -> 218554 bytes client/src/static/img/06_jonny_1204.png | Bin 0 -> 214269 bytes client/src/static/img/07_tobby_1204.png | Bin 0 -> 215585 bytes client/src/static/img/0801.png | Bin 0 -> 478027 bytes client/src/static/img/0802.png | Bin 0 -> 472127 bytes client/src/static/img/0808.png | Bin 0 -> 468152 bytes client/src/static/img/0809.png | Bin 0 -> 458939 bytes client/src/static/img/0815.png | Bin 0 -> 464952 bytes client/src/static/img/08_erika_1204.png | Bin 0 -> 211128 bytes client/src/static/img/09_master_1204.png | Bin 0 -> 219771 bytes client/src/static/img/13_joker_1204.png | Bin 0 -> 129210 bytes client/src/static/img/atlus_logo.png | Bin 0 -> 2488 bytes client/src/static/img/background.png | Bin 0 -> 1127546 bytes client/src/static/img/bgbg.png | Bin 0 -> 231531 bytes client/src/static/img/bgimage.png | Bin 0 -> 224576 bytes client/src/static/img/bgimagenight.png | Bin 0 -> 718352 bytes client/src/static/img/buynow.png | Bin 0 -> 25736 bytes client/src/static/img/cat_fb_logo.png | Bin 0 -> 29608 bytes client/src/static/img/chalice.png | Bin 0 -> 164912 bytes client/src/static/img/faito_crab.png | Bin 0 -> 10767 bytes client/src/static/img/for_switch.png | Bin 0 -> 6439 bytes client/src/static/img/letterbox.png | Bin 0 -> 14142 bytes client/src/static/img/playerbg.png | Bin 0 -> 2820 bytes client/src/static/img/players.png | Bin 0 -> 765828 bytes client/src/static/img/rule.png | Bin 0 -> 111669 bytes client/src/static/img/scoreboard.png | Bin 0 -> 27881 bytes client/src/static/img/straysheepcup0.png | Bin 0 -> 59320 bytes client/src/static/img/title_sheep.png | Bin 0 -> 19132 bytes client/src/static/img/twitch.png | Bin 0 -> 4628 bytes client/src/static/img/youtube.png | Bin 0 -> 2902 bytes client/src/web.module.scss | 508 ++++++++++++++++++ client/tsconfig.json | 25 + client/tslint.json | 40 ++ infra/db.sql | 152 ++++++ server/.gitignore | 3 + server/package.json | 28 + server/src/index.ts | 139 +++++ server/src/models/index.ts | 0 server/src/test.ts | 0 server/tsconfig.json | 24 + server/tslint.json | 37 ++ 85 files changed, 1936 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 client/.env create mode 100644 client/.env.production create mode 100644 client/.gitignore create mode 100644 client/README.md create mode 100644 client/package.json create mode 100644 client/public/favicon.ico create mode 100644 client/public/index.html create mode 100644 client/public/manifest.json create mode 100644 client/public/robots.txt create mode 100644 client/src/App.css create mode 100644 client/src/App.test.tsx create mode 100644 client/src/App.tsx create mode 100644 client/src/components/about.tsx create mode 100644 client/src/components/archive.tsx create mode 100644 client/src/components/contact.tsx create mode 100644 client/src/components/guide.tsx create mode 100644 client/src/components/home.tsx create mode 100644 client/src/components/notfound.tsx create mode 100644 client/src/components/players.tsx create mode 100644 client/src/components/scoreboard.tsx create mode 100644 client/src/components/tournaments.tsx create mode 100644 client/src/i18n.ts create mode 100644 client/src/index.css create mode 100644 client/src/index.tsx create mode 100644 client/src/locale/en.json create mode 100644 client/src/locale/ja.json create mode 100644 client/src/logo.svg create mode 100644 client/src/models/IArchiveItem.ts create mode 100644 client/src/models/IContactQuestion.ts create mode 100644 client/src/models/IGuideItem.ts create mode 100644 client/src/models/IPlayerInfo.ts create mode 100644 client/src/react-app-env.d.ts create mode 100644 client/src/serviceWorker.ts create mode 100644 client/src/setupTests.ts create mode 100644 client/src/static/font/indieflower.ttf create mode 100644 client/src/static/img/00_bluecap_1204.png create mode 100644 client/src/static/img/00_redcap_1204.png create mode 100644 client/src/static/img/01_sheep_vincent_1204.png create mode 100644 client/src/static/img/01_vincent_1204.png create mode 100644 client/src/static/img/02_katherine_1204.png create mode 100644 client/src/static/img/03_catherine_1204.png create mode 100644 client/src/static/img/04_rin_1204.png create mode 100644 client/src/static/img/05_orlando_1204.png create mode 100644 client/src/static/img/06_jonny_1204.png create mode 100644 client/src/static/img/07_tobby_1204.png create mode 100644 client/src/static/img/0801.png create mode 100644 client/src/static/img/0802.png create mode 100644 client/src/static/img/0808.png create mode 100644 client/src/static/img/0809.png create mode 100644 client/src/static/img/0815.png create mode 100644 client/src/static/img/08_erika_1204.png create mode 100644 client/src/static/img/09_master_1204.png create mode 100644 client/src/static/img/13_joker_1204.png create mode 100644 client/src/static/img/atlus_logo.png create mode 100644 client/src/static/img/background.png create mode 100644 client/src/static/img/bgbg.png create mode 100644 client/src/static/img/bgimage.png create mode 100644 client/src/static/img/bgimagenight.png create mode 100644 client/src/static/img/buynow.png create mode 100644 client/src/static/img/cat_fb_logo.png create mode 100644 client/src/static/img/chalice.png create mode 100644 client/src/static/img/faito_crab.png create mode 100644 client/src/static/img/for_switch.png create mode 100644 client/src/static/img/letterbox.png create mode 100644 client/src/static/img/playerbg.png create mode 100644 client/src/static/img/players.png create mode 100644 client/src/static/img/rule.png create mode 100644 client/src/static/img/scoreboard.png create mode 100644 client/src/static/img/straysheepcup0.png create mode 100644 client/src/static/img/title_sheep.png create mode 100644 client/src/static/img/twitch.png create mode 100644 client/src/static/img/youtube.png create mode 100644 client/src/web.module.scss create mode 100644 client/tsconfig.json create mode 100644 client/tslint.json create mode 100644 infra/db.sql create mode 100644 server/.gitignore create mode 100644 server/package.json create mode 100644 server/src/index.ts create mode 100644 server/src/models/index.ts create mode 100644 server/src/test.ts create mode 100644 server/tsconfig.json create mode 100644 server/tslint.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..20feacc --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +package-lock.json +util/*.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..fa7f585 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Catherine League + diff --git a/client/.env b/client/.env new file mode 100644 index 0000000..988c041 --- /dev/null +++ b/client/.env @@ -0,0 +1 @@ +REACT_APP_API_URL=http://localhost:7000/ \ No newline at end of file diff --git a/client/.env.production b/client/.env.production new file mode 100644 index 0000000..08d6186 --- /dev/null +++ b/client/.env.production @@ -0,0 +1 @@ +REACT_APP_API_URL=/ \ No newline at end of file diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000..74735dc --- /dev/null +++ b/client/README.md @@ -0,0 +1,44 @@ +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.
+You will also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.
+It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.
+Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000..b26bb53 --- /dev/null +++ b/client/package.json @@ -0,0 +1,56 @@ +{ + "name": "catherine-league", + "version": "0.1.0", + "private": true, + "dependencies": { + "axios": "^0.19.2", + "dotenv": "^8.2.0", + "i18next": "^19.6.3", + "node-sass": "^4.13.1", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "react-i18next": "^11.7.0", + "react-router-dom": "^5.2.0", + "react-scripts": "3.4.1", + "react-youtube": "^7.11.3", + "semantic-ui-css": "^2.4.1", + "semantic-ui-react": "^0.88.2", + "typescript": "^3.7.5" + }, + "devDependencies": { + "@testing-library/jest-dom": "^4.2.4", + "@testing-library/react": "^9.5.0", + "@testing-library/user-event": "^7.2.1", + "@types/react-router-dom": "^5.1.5", + "@types/jest": "^24.9.1", + "@types/node": "^12.12.35", + "@types/react": "^16.9.34", + "@types/react-dom": "^16.9.6", + "@types/react-youtube": "^7.6.2", + "tslint": "^5.18.0", + "tslint-config-airbnb": "^5.11.1", + "tslint-react": "^4.0.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject", + "lint": "tslint -c tslint.json -p tsconfig.json" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/client/public/favicon.ico b/client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..64b368f9873ffecfd24ef997862aba60c1922b40 GIT binary patch literal 137750 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%0A3}4T~{Zzzv z`9|au$5G7v=6&;ze8jQ2zV3q1MMwM{jHe-I+vI;ym5p_-vEH7&n*D$FV|@=R zaVq!Td%5Ov4i*E~;-05&8Slf+H|kv?Z>#~U*>!ZOssm4pf~(*;$~bQs=P1u2(^~X7 zi#8{16WpV3vQ_@IdpBYZ@Og>#%nf4U??hDf-R?DbcYiMOd7W}h>wIjw8Cj2A{qpX9 zeDEJ}?p|ykqVM~i3OQ|)|5&s2cQY1ajOpEJ@Lwtic`4!FdTUzoK-+ov=UF+`2jt)V zNAEZF{ovj)yhgkak^?%r9|-SvAniQM-QCKrs_TrknB4ZGw)GpOfc_denOE;zktPM2fzp1EKC z%>#}lMx4LOoImEAo3{}@wjy<6-a76DkLvji?RL=~;Z(P}iHAadt#_c1wj_O$iT+Bg^!fP`R$XoVv&Nq7Uco%&JgZqi?E9z>l zGv{qb%mwzx^$Wzn{GzsFIR_tiBXzmAUgf%`Oc&bSg*|7qDaH#Q-@>_W#JHD#{Xjge zEBE?<_hIiNa@a2a#*Xtw^lRQ>>@#3Gs(lnVdeS)kV?*>+#dGqf?%@*+U%0yrm+X1C zeuQ@Y<~rB;uJP@M^Xl3%k7WC*dkhyJ2Ol-c4R!m?)&uK@==)+1wkX=B$iMu0PW7k<#l z3!Ccpi+)dG`=H#zx!ixx{!_>A^VJ7V<{<6N`)#kI>HlFkykacN;T9ygw=~afLyQyi ze&hh_>KoRPFXusVZij#Kg*?cIc|#G?K16+7bHSPKT0dNupQuM%&eE6cLorUZ!Lig+ zU+}oWzu)(-J!jI_i{^cFJwPt#*!_Lz9wpqog*5YVi{oX{u5L+x_aK+#QI5@P&f|{r zIU=|CM&efdj8UJrik<61d9tqjnU%1vmbt z%Dr{%ih9_x)V*PCvQ+dh{X)O9Z^dKAS|07{l<@xqcs2Kq>$GX74!BN2+PU9P&oJta zLEp2HACSbOYdP^2pWr=8pS8=ad0ijS7i=f*QOcJ%nj>2AAN{PQu3Xrku`mDT75P^m z`!iPIUO9)fmEW*shMenD_G_tq&RzPtF>DUd2PoYS7_lE*7tc=D1J?y&TT|M42Z=uQ ztwZ)L$MPsn=3{XQ-Yq{z`WdM{`H`Zr^Bbf0`IJ^`*9#I~liwQoY7uiLNu?rxOg zEC=G^y3f2Hb&N&h#~kl^Ab5v!zgw^r{^xT%mw7hrrxD*%$o;+#?z`Xa`7cG9|6|wq zH`c{m4#eNFyAj9GpX4d{m-`0))_uJlT&aJvwmFu$#(wo*{lQ#dsSf%e^)|NC_juI> zQ{%JlGrsP2^q^nYl$VWHdESc{YjWb+&e)K9dA3f}^PFNE{N@CGJkid$*2M>&Ku$P6 zDDob2i}_!k=r@h6AIh0Nkm26r%Sc=AuDs9xVYPqfu62lg>(lyz@gIJ`d~hC}+R88O zVo;|(7~CfgHKnb4WcuupQ)6F_6@C9*M0~`?_zwQn!MgH}oa1=R?+_6CPs7PMv6lmm z)BJCIhL4%EXMvOmW{~d(bEabnTi|d89)?a0Mc%E3F4fluiH`fgE;&C6+ zi!|>2QtW#y_u&ihKge-geoxN$*8CEAP9HG$YnyXhCJ!vF(t9GVp;KQ2^Hw?Fjdt{* z&n@*XPyMg}S~s zG+-{@hggcS+>5=rUtG+`;$a>(PtfKdGH&;|#N=eSIQR#~GVbNy^_j71{+E;BUw!3X z9w`U#joQx$uyLNT?>PFExz4=f7-FHV<^%e?M0w5D0AM{2sl)xLy4+h2`(D+~K16QC zHP%Gpq7Rr0oDbz+L66f&ZH(K|CtH`b$4odq?HWVKpn3=U>hC z)9RRjz(7mwgy zyqy!|UOdpFgsg}-aJJ|G4w5a$%v0`3uV-1c62r!au450N_gzxI0) zaQ~#-JGYYq)0}T92I6536bIujllvd+ludQ}VO{c|9LR;a$h_}772Ib_eZuRUtNpwi zTVKfX|3}(87wG%0f6V=2MBg9Q)w$F4;Ql~O{vWA3_Fnv6T;(|OU2rcR&I5jS-gS;3 z2OqE7cc<%-pN`9Y@GmF&gOcT6?#%(j@OyQ2z*hfvNOR7MbwD@g%!m4edx7Mf19kiC zbUnB~R+Ilb>yFLb)}yWFxrqA~{4cKCcc<%t{bG4A$IE@5|L_C(w+?*P-V37comu|H zz&SuM2Z)V+N6wk>xi4^p`*St