├── .env ├── .gitignore ├── README.md ├── cosmos.config.json ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── favicon.ico ├── index.html ├── locales │ ├── cn │ │ └── translation.json │ ├── en │ │ └── translation.json │ └── vi │ │ └── translation.json ├── logo192.png ├── manifest.json ├── robots.txt └── static │ └── image │ ├── avatar.png │ ├── china.svg │ ├── co.png │ ├── coming.jpg │ ├── f.svg │ ├── file.png │ ├── huyen.JPG │ ├── ngoc.JPG │ ├── phuc.JPG │ ├── snapshot.png │ ├── son.jpg │ ├── thay.png │ ├── united-kingdom.svg │ ├── vietnam.svg │ └── vn.jpg ├── src ├── App.test.tsx ├── __fixtures__ │ ├── auth │ │ ├── AuthProvider.tsx │ │ └── index.tsx │ ├── chart │ │ ├── areaChartInput │ │ │ ├── index.tsx │ │ │ └── reducer.ts │ │ ├── barChartInput │ │ │ ├── index.tsx │ │ │ └── reducer.ts │ │ ├── chartDrawer │ │ │ ├── area.tsx │ │ │ ├── bar.tsx │ │ │ ├── index.ts │ │ │ ├── line.tsx │ │ │ ├── pie.tsx │ │ │ └── scatter.tsx │ │ ├── dummyInput │ │ │ └── dummy.tsx │ │ ├── index.tsx │ │ ├── lineChartInput │ │ │ ├── index.tsx │ │ │ └── reducer.ts │ │ ├── pieChartInput │ │ │ ├── index.tsx │ │ │ └── reducer.ts │ │ ├── scatterChartInput │ │ │ ├── index.tsx │ │ │ └── reducer.ts │ │ └── standardChart │ │ │ ├── CommonStandard.tsx │ │ │ ├── area.tsx │ │ │ ├── bar.tsx │ │ │ ├── line.tsx │ │ │ ├── pie.tsx │ │ │ └── scatter.tsx │ ├── chartCard │ │ └── index.tsx │ ├── colorSetter │ │ └── index.tsx │ ├── delayinput │ │ └── index.tsx │ ├── history │ │ └── index.tsx │ ├── icons │ │ └── index.tsx │ ├── index.tsx │ ├── initState.ts │ ├── layout │ │ ├── index.tsx │ │ └── routeConfig.tsx │ ├── loading │ │ └── Gears.tsx │ ├── logo │ │ └── index.tsx │ ├── menu │ │ └── index.tsx │ ├── navigator │ │ ├── index.tsx │ │ └── style.css │ ├── pages │ │ ├── About.tsx │ │ ├── Chart.tsx │ │ ├── Home.tsx │ │ ├── QA.tsx │ │ ├── User.tsx │ │ ├── Weather.tsx │ │ └── index.ts │ ├── userInfo │ │ ├── croppie.css │ │ ├── editor.tsx │ │ └── index.tsx │ └── utils │ │ └── index.ts ├── constants │ └── index.ts ├── graphql │ ├── mutations.ts │ └── queries.ts ├── i18n.ts ├── index.css ├── index.tsx ├── react-app-env.d.ts ├── serviceWorker.ts ├── setupTests.ts └── tailwind │ ├── in.css │ └── out.css ├── tailwind.config.js └── tsconfig.json /.env: -------------------------------------------------------------------------------- 1 | HTTPS=true 2 | REACT_APP_DEVELOPMENT_API_URL=https://localhost:4000 3 | REACT_APP_PRODUCTION_API_URL=something 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | [](https://travis-ci.org/leminhson2398/graph-maker-front-end) 3 | 4 |
5 | 6 | ### Features 7 | 1) Multi languges support (English, Vietnamese, Chinese) 8 | 2) Draw charts quickly as user fill in the chart data form 9 | 3) Save chart data in database or as png files so users can view them later 10 | 4) 5 chart popular chart types supported 11 |{t(chartRoutes[activeIndex].name)}
136 |39 | {`${title.slice(0, 25)}...`} 40 |
41 |
42 |
115 | {t("collection.collection")} 116 |
117 | 118 | {/* filter */} 119 |{item}
, 59 | returnVal: item 60 | } 61 | }) 62 | } 63 | }, [t]) 64 | 65 | 66 | // run everytime user change display language 67 | useEffect(() => { 68 | i18n.changeLanguage(langMap[currentLang]) 69 | 70 | localStorage.setItem("lang", currentLang) 71 | }, [currentLang, i18n]) 72 | 73 | // reactive variable to know whether user is authenticated or not 74 | const { isSignedIn } = useReactiveVar(localState) 75 | 76 | function toggleMenu(whichRef: React.MutableRefObject{currentLang}
155 |57 | Lời cảm ơn 58 |
59 |61 | Dự án này, có lẽ sẽ không đến được với các thầy cô, các bạn học sinh của Tổ Quốc Việt Nam nếu như không có sự đóng góp của các thành viên dự án. Cảm ơn sự đóng góp của các bạn, cũng như sự ủng hộ của cộng đồng các bạn trẻ trên toàn thể lãnh thổ đất nước và cả hai mẹ con chị Janet Wang, bạn Tommy đến từ Trung Quốc về bản dịch tiếng Trung. Mong rằng Schart sẽ sẽ đem tới những niềm vui mới cho các bạn trong những tiết học địa lý tới đây. 62 |
63 |65 | Nhóm phát triển 66 |
67 |60 | {t("aboutUser.about")} 61 |
62 | 63 | {/* avatar */} 64 |125 | 126 | 129 | 130 | {geoThought} 131 |
132 | )} 133 | 134 | {edit ? ( 135 |