From 5c6511b1104a01fa036b29ea4e4bfa4cf9d04db9 Mon Sep 17 00:00:00 2001 From: cns82 <calebsecor1@gmail.com> Date: Tue, 21 Mar 2023 21:24:04 -0400 Subject: [PATCH] setup flask boiler plate --- .gitignore | 3 +- requirements.txt | 8 +++++ search-engine/package.json | 23 ++++++++------ search-engine/src/component/search.js | 14 +++++++++ search-engine/src/index.js | 45 ++++++++++++++++++--------- search-engine/src/layout.js | 39 +++++++++++++++++++++++ server.py | 20 ++++++++++++ 7 files changed, 127 insertions(+), 25 deletions(-) create mode 100644 requirements.txt create mode 100644 search-engine/src/component/search.js create mode 100644 search-engine/src/layout.js create mode 100644 server.py diff --git a/.gitignore b/.gitignore index 483a9c4..93b9360 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -package-lock.json \ No newline at end of file +package-lock.json +engine \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..fe83e85 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +click==8.1.3 +Flask==2.2.3 +importlib-metadata==6.1.0 +itsdangerous==2.1.2 +Jinja2==3.1.2 +MarkupSafe==2.1.2 +Werkzeug==2.2.3 +zipp==3.15.0 diff --git a/search-engine/package.json b/search-engine/package.json index 028cc0f..6ef2d10 100644 --- a/search-engine/package.json +++ b/search-engine/package.json @@ -2,15 +2,6 @@ "name": "search-engine", "version": "0.1.0", "private": true, - "dependencies": { - "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^13.4.0", - "@testing-library/user-event": "^13.5.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-scripts": "5.0.1", - "web-vitals": "^2.1.4" - }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", @@ -34,5 +25,19 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", + "axios": "^1.3.4", + "bootstrap": "^5.2.3", + "devextreme": "^22.2.4", + "react": "^18.2.0", + "react-bootstrap": "^2.7.2", + "react-dom": "^18.2.0", + "react-router-dom": "^6.9.0", + "react-scripts": "^5.0.1", + "web-vitals": "^3.3.0" } } diff --git a/search-engine/src/component/search.js b/search-engine/src/component/search.js new file mode 100644 index 0000000..f662213 --- /dev/null +++ b/search-engine/src/component/search.js @@ -0,0 +1,14 @@ + + + +let SearchEngine = function () { + + + return ( + <div> + Hello World + </div> + ) +} + +export default SearchEngine; diff --git a/search-engine/src/index.js b/search-engine/src/index.js index d563c0f..ff00a93 100644 --- a/search-engine/src/index.js +++ b/search-engine/src/index.js @@ -1,17 +1,32 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import './index.css'; -import App from './App'; -import reportWebVitals from './reportWebVitals'; +import React from "react"; +import ReactDOM from "react-dom/client"; +//import "./index.css"; + +import { createBrowserRouter, RouterProvider } from "react-router-dom"; +import { Layout } from "./Layout"; +import SearchEngine from "./component/search"; + -const root = ReactDOM.createRoot(document.getElementById('root')); -root.render( - <React.StrictMode> - <App /> - </React.StrictMode> -); -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); +let router = createBrowserRouter([ + { + element: <Layout />, + children: [ + { + path: "/", + element: <SearchEngine />, + }, + { + path: "*", + element: <p>Page not found</p>, + }, + ], + }, +]); + +let root = ReactDOM.createRoot(document.getElementById("root")); +root.render( + <React.StrictMode> + <RouterProvider router={router} /> + </React.StrictMode> +); \ No newline at end of file diff --git a/search-engine/src/layout.js b/search-engine/src/layout.js new file mode 100644 index 0000000..53233c0 --- /dev/null +++ b/search-engine/src/layout.js @@ -0,0 +1,39 @@ + + +import { Outlet } from "react-router-dom"; +import Container from 'react-bootstrap/Container'; +import Nav from 'react-bootstrap/Nav'; +import Navbar from 'react-bootstrap/Navbar'; +import 'bootstrap/dist/css/bootstrap.min.css'; + + +let Header = function () { + + + return ( + <> + <Navbar bg="light" expand="lg"> + <Container> + <Navbar.Brand href="/">Search Engine</Navbar.Brand> + <Navbar.Toggle aria-controls="basic-navbar-nav" /> + <Navbar.Collapse id="basic-navbar-nav"> + <Nav className="me-auto"> + <Nav.Link href="/search">Search</Nav.Link> + </Nav> + </Navbar.Collapse> + </Container> + </Navbar> + </> + ); +}; + +export let Layout = function () { + return ( + <> + <Header /> + <main> + <Outlet /> + </main> + </> + ); +}; \ No newline at end of file diff --git a/server.py b/server.py new file mode 100644 index 0000000..e85b5b9 --- /dev/null +++ b/server.py @@ -0,0 +1,20 @@ + +from flask import Flask, render_template, request, send_from_directory +import logging +from logging import Formatter, FileHandler +import os + + +app = Flask(__name__, static_url_path='', static_folder='search-engine/build') + + +@app.route("/", defaults={'path':''}) +def serve(path): + return send_from_directory(app.static_folder,'index.html') + + + +# Or specify port manually: +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5099)) + app.run(host='localhost', port=5099) -- GitLab