From 5b0a38dc791a322a30f93b666858a0fcf4e27840 Mon Sep 17 00:00:00 2001
From: Mia Wang <yw21218@ic.ac.uk>
Date: Tue, 19 Apr 2022 14:35:04 +0100
Subject: [PATCH] react flask

---
 backend/.gitignore                           | 161 +++++++++++++++++++
 backend/__pycache__/react_app.cpython-38.pyc | Bin 589 -> 540 bytes
 backend/react_app.py                         |   3 +-
 package.json                                 |   3 +-
 src/App.js                                   |  80 ++-------
 src/setupProxy.js                            |  11 ++
 6 files changed, 189 insertions(+), 69 deletions(-)
 create mode 100644 backend/.gitignore
 create mode 100644 src/setupProxy.js

diff --git a/backend/.gitignore b/backend/.gitignore
new file mode 100644
index 00000000..e2efcaa8
--- /dev/null
+++ b/backend/.gitignore
@@ -0,0 +1,161 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+**/__pycache__/
+**/datasets/
+*.py[cod]
+*$py.class
+*.pyc
+*.pyo
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+#   For a library or package, you might want to ignore these files since the code is
+#   intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+#   However, in case of collaboration, if having platform-specific dependencies or dependencies
+#   having no cross-platform support, pipenv may install dependencies that don't work, or not
+#   install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+#   This is especially recommended for binary packages to ensure reproducibility, and is more
+#   commonly ignored for libraries.
+#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+#  JetBrains specific template is maintainted in a separate JetBrains.gitignore that can
+#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+#  and can be added to the global gitignore or merged into this file.  For a more nuclear
+#  option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
+
+# our project specific stuff
+MetaAugment/__pycache__/main.cpython-38.pyc
+
+**/mnist/
\ No newline at end of file
diff --git a/backend/__pycache__/react_app.cpython-38.pyc b/backend/__pycache__/react_app.cpython-38.pyc
index 3d91ed792b161bb8625c6d1ad4bd98d5bf7a5850..ecc590f085e748de904d61d2f09cdf6924ceb902 100644
GIT binary patch
delta 205
zcmX@hGKYmXl$V!_0SIO+i%W`{$Sdou2jrwMq%h_%<T6Gv<}yVwF*2kwrZP7(MzN%_
zEMQGxTF98foWjz=02E<MVGU-`WP1rRL6hkgt6NTDarQ0tqSV6D)Z&tf6IZaY0%eL=
zC)+c&tFr@{#T+1|%uI|-|JYcIKq7vc>`|;~AbmwlKyDH9<bRA(h9H?Dh+a604amC1
YVUwGmQks)$#|Y#VgM<W_IhZ*Z0nLRd_y7O^

delta 235
zcmbQka+ZZRl$V!_0SFc!h)qhG$SdpN1mvVJq%h_%<T6Gv<}yVwF@pF^In22%Q7nuM
zsf?+t&5TiOsVu2%&5S@k+XD6!=7o$YEGeul3_ux<6t-XnP4<a#;vAZcw^*G0gMufP
zu3%#Wnp?y+S(&ljf&<7b1`!O*OpHwb*jS4|96wFYDAu%`#NzBCCLp(n8AwENfd%4|
y^NWg$SSDX&lrjY=ErJ*ZXR!lWw>WHa^HWN5QtcRlykd~21Q>akI2bvYIT!)_87%q$

diff --git a/backend/react_app.py b/backend/react_app.py
index a7ae42b7..b082b2ab 100644
--- a/backend/react_app.py
+++ b/backend/react_app.py
@@ -1,8 +1,7 @@
 from flask import Flask, request
-from flask_cors import CORS
+# from flask_cors import CORS
 
 app = Flask(__name__)
-CORS(app)
 
 
 @app.route('/profile')
diff --git a/package.json b/package.json
index 9be4245f..254121e4 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,5 @@
       "last 1 firefox version",
       "last 1 safari version"
     ]
-  },
-  "proxy": "http://127.0.0.1:5000"
+  }
 }
diff --git a/src/App.js b/src/App.js
index 17f212cc..2f270ce2 100644
--- a/src/App.js
+++ b/src/App.js
@@ -7,72 +7,22 @@ import logo from './logo.svg';
 // import {BrowerRouter as Router, Route, Switch} from 'react-router-dom';
 
 function App() {
-  // new line start
- const [profileData, setProfileData] = useState(null)
-
- function getData() {
-   axios({
-     method: "GET",
-     url:"/profile",
-   })
-   .then((response) => {
-     const res =response.data
-     setProfileData(({
-       profile_name: res.name,
-       about_me: res.about}))
-   }).catch((error) => {
-     if (error.response) {
-       console.log(error.response)
-       console.log(error.response.status)
-       console.log(error.response.headers)
-       }
-   })}
-   //end of new line 
-
- return (
-   <div className="App">
-     <header className="App-header">
-       <img src={logo} className="App-logo" alt="logo" />
-       <p>
-         Edit <code>src/App.js</code> and save to reload.
-       </p>
-       <a
-         className="App-link"
-         href="https://reactjs.org"
-         target="_blank"
-         rel="noopener noreferrer"
-       >
-         Learn React
-       </a>
-
-       {/* new line start*/}
-       <p>To get your profile details: </p><button onClick={getData}>Click me</button>
-       {profileData && <div>
-             <p>Profile name: {profileData.profile_name}</p>
-             <p>About me: {profileData.about_me}</p>
-           </div>
-       }
-        {/* end of new line */}
-     </header>
-   </div>
- );
+  useEffect(() => {
+    fetch('/', {
+      method: 'POST',
+      headers: { 'Content-Type': 'application/json' },
+      body: JSON.stringify({ })
+    })
+      .then((response) => response.json())
+      .then((data) => console.log(data));
+  }, []);
+
+  return (
+    <div>
+      <Home />
+    </div>
+  );
 }
-//   useEffect(() => {
-//     fetch('/', {
-//       method: 'POST',
-//       headers: { 'Content-Type': 'application/json' },
-//       body: JSON.stringify({ })
-//     })
-//       .then((response) => response.json())
-//       .then((data) => console.log(data));
-//   }, []);
-
-//   return (
-//     <div>
-//       <Home />
-//     </div>
-//   );
-// }
 
 
 export default App;
diff --git a/src/setupProxy.js b/src/setupProxy.js
new file mode 100644
index 00000000..928c19b9
--- /dev/null
+++ b/src/setupProxy.js
@@ -0,0 +1,11 @@
+const { createProxyMiddleware } = require('http-proxy-middleware');
+
+module.exports = function(app) {
+  app.use(
+    '/api',
+    createProxyMiddleware({
+      target: 'http://localhost:5000',
+      changeOrigin: true,
+    })
+  );
+};
\ No newline at end of file
-- 
GitLab