├── .vscode ├── extensions.json └── settings.json ├── .env.example ├── docs ├── img │ ├── CORS.png │ ├── main.png │ ├── banner.png │ ├── Build_Screenshot.png │ ├── Kintone-App-Name.png │ ├── PROJECT_DEMO_GIF.gif │ ├── Kintone-Field-Codes.gif │ ├── common_signup │ │ ├── SignUp-1.png │ │ ├── SignUp-2.png │ │ ├── SignUp-3.png │ │ └── SignUp-4.png │ ├── common_kintone │ │ ├── CreateApp-1.png │ │ ├── CreateApp-2.png │ │ ├── KintoneApp_URL.png │ │ ├── KintoneApp_API_1.png │ │ ├── KintoneApp_API_2.png │ │ ├── Kintone-Button-Edit.png │ │ ├── Kintone-View-Setting-Record-Count.png │ │ └── Kintone-View-Setting-Record-Count-HD.png │ └── common_vscode │ │ ├── vscode-setting-extension.png │ │ └── vscode-setting-extension-HD.png ├── Workshop_Steps.pdf ├── Event_Description.md ├── Solution_server.js ├── Zoom_Chat.md └── Workshop_Steps.md ├── public ├── favicon.ico └── index.html ├── src ├── index.js ├── App.css ├── components │ ├── spinner.js │ ├── countryPicker.js │ ├── cityPicker.js │ └── statePicker.js ├── requests │ ├── getRecords.js │ └── postRecord.js └── App.js ├── .gitignore ├── .markdownlint.json ├── backend ├── package.json ├── server.js └── package-lock.json ├── package.json ├── LICENSE └── README.md /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "wayou.vscode-todo-highlight" 4 | ] 5 | } -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | SUBDOMAIN = "example" 2 | APPID = "1" 3 | APITOKEN = "1J22qNAR54I4eiMcd0JmfDAavJNfNJDVaqt34X9A" -------------------------------------------------------------------------------- /docs/img/CORS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/CORS.png -------------------------------------------------------------------------------- /docs/img/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/main.png -------------------------------------------------------------------------------- /docs/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/banner.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /docs/Workshop_Steps.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/Workshop_Steps.pdf -------------------------------------------------------------------------------- /docs/img/Build_Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/Build_Screenshot.png -------------------------------------------------------------------------------- /docs/img/Kintone-App-Name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/Kintone-App-Name.png -------------------------------------------------------------------------------- /docs/img/PROJECT_DEMO_GIF.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/PROJECT_DEMO_GIF.gif -------------------------------------------------------------------------------- /docs/img/Kintone-Field-Codes.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/Kintone-Field-Codes.gif -------------------------------------------------------------------------------- /docs/img/common_signup/SignUp-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_signup/SignUp-1.png -------------------------------------------------------------------------------- /docs/img/common_signup/SignUp-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_signup/SignUp-2.png -------------------------------------------------------------------------------- /docs/img/common_signup/SignUp-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_signup/SignUp-3.png -------------------------------------------------------------------------------- /docs/img/common_signup/SignUp-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_signup/SignUp-4.png -------------------------------------------------------------------------------- /docs/img/common_kintone/CreateApp-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_kintone/CreateApp-1.png -------------------------------------------------------------------------------- /docs/img/common_kintone/CreateApp-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_kintone/CreateApp-2.png -------------------------------------------------------------------------------- /docs/img/common_kintone/KintoneApp_URL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_kintone/KintoneApp_URL.png -------------------------------------------------------------------------------- /docs/img/common_kintone/KintoneApp_API_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_kintone/KintoneApp_API_1.png -------------------------------------------------------------------------------- /docs/img/common_kintone/KintoneApp_API_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_kintone/KintoneApp_API_2.png -------------------------------------------------------------------------------- /docs/img/common_kintone/Kintone-Button-Edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_kintone/Kintone-Button-Edit.png -------------------------------------------------------------------------------- /docs/img/common_vscode/vscode-setting-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_vscode/vscode-setting-extension.png -------------------------------------------------------------------------------- /docs/img/common_vscode/vscode-setting-extension-HD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_vscode/vscode-setting-extension-HD.png -------------------------------------------------------------------------------- /docs/img/common_kintone/Kintone-View-Setting-Record-Count.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_kintone/Kintone-View-Setting-Record-Count.png -------------------------------------------------------------------------------- /docs/img/common_kintone/Kintone-View-Setting-Record-Count-HD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kintone-workshops/React-x-REST-API-Workshop/HEAD/docs/img/common_kintone/Kintone-View-Setting-Record-Count-HD.png -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import App from './App.js'; 4 | 5 | const root = ReactDOM.createRoot(document.getElementById('root')); 6 | root.render( 7 | 8 | 9 | 10 | ); 11 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | .main { 2 | display: flex; 3 | flex-direction: column; 4 | align-content: center; 5 | justify-content: center; 6 | } 7 | 8 | .loadingDiv { 9 | position: absolute; 10 | top: 50%; 11 | left: 50%; 12 | transform: translate(-50%, -50%); 13 | z-index: 99; 14 | } 15 | 16 | .selectDiv { 17 | padding: 5%; 18 | } -------------------------------------------------------------------------------- /src/components/spinner.js: -------------------------------------------------------------------------------- 1 | import { TailSpin } from 'react-loader-spinner' 2 | 3 | const LoadingSpinner = () => { 4 | return( 5 | 15 | ); 16 | } 17 | export default LoadingSpinner; 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /backend/node_modules 6 | /.pnp 7 | .pnp.js 8 | 9 | # testing 10 | /coverage 11 | temp.* 12 | 13 | # production 14 | /build 15 | 16 | # misc 17 | .DS_Store 18 | .env 19 | .env.local 20 | .env.development.local 21 | .env.test.local 22 | .env.production.local 23 | 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "MD001": false, 3 | "MD002": false, 4 | "MD006": false, 5 | "MD009": { 6 | "br_spaces": 2 7 | }, 8 | "MD013": false, 9 | "MD014": false, 10 | "MD022": { 11 | "lines_below": 0 12 | }, 13 | "MD024": false, 14 | "MD026": false, 15 | "MD032": false, 16 | "MD033": { 17 | "allowed_elements": ["br", "pre", "ul", "li", "ol", "details", "summary"] 18 | }, 19 | "MD034": false, 20 | "MD036": false, 21 | "MD041": false, 22 | "MD051": false 23 | } 24 | -------------------------------------------------------------------------------- /backend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backend", 3 | "version": "1.0.0", 4 | "description": "Express server that makes the Kintone API calls", 5 | "main": "server.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "nodemon --watch .env --watch ../frontend server.js" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "cors": "^2.8.5", 14 | "dotenv": "^10.0.0", 15 | "express": "^4.18.2", 16 | "nodemon": "^2.0.12" 17 | } 18 | } -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | React App 13 | 14 | 15 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /src/components/countryPicker.js: -------------------------------------------------------------------------------- 1 | import { Country } from "country-state-city"; 2 | import Select from 'react-select' 3 | 4 | const CountryPicker = ({selectedCountry, setSelectedCountry}) => { 5 | return( 6 | { 13 | return options["name"]; 14 | }} 15 | getOptionValue={(options) => { 16 | return options["name"]; 17 | }} 18 | value={selectedCity} 19 | onChange={(item) => { 20 | setSelectedCity(item); 21 | }} 22 | /> 23 | ); 24 | } 25 | export default CityPicker; 26 | -------------------------------------------------------------------------------- /src/components/statePicker.js: -------------------------------------------------------------------------------- 1 | import { State } from "country-state-city"; 2 | import Select from 'react-select' 3 | 4 | 5 | const StatePicker = ({selectedCountry, selectedState, setSelectedState}) => { 6 | return( 7 |