Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1218/jy #39

Open
wants to merge 7 commits into
base: 1219chaemin
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
jy까지 merge 완료
euWna committed Dec 19, 2022
commit df8bd89bde7ce68b9b2a7d7de347aeb3be85bccf
2 changes: 0 additions & 2 deletions config/paths.js
Original file line number Diff line number Diff line change
@@ -54,8 +54,6 @@ const resolveModule = (resolveFn, filePath) => {
module.exports = {
dotenv: resolveApp('.env'),
appPath: resolveApp('.'),
// appBuild: resolveApp(buildPath),
appBuild: resolveApp('./flask-server/static/react'),
appPublic: resolveApp('public'),
appHtml: resolveApp('public/index.html'),
appIndexJs: resolveModule(resolveApp, 'src/index'),
2 changes: 1 addition & 1 deletion config/webpack.config.js
Original file line number Diff line number Diff line change
@@ -570,7 +570,7 @@ module.exports = function (webpackEnv) {
{
inject: true,
template: paths.appHtml,
filename: "../../templates/index.html"
// filename: "../../templates/index.html"
},
isEnvProduction
? {
40 changes: 35 additions & 5 deletions flask-server/app.py
Original file line number Diff line number Diff line change
@@ -28,7 +28,7 @@ def view_createstore():
def view_registeredstore(storename):
return render_template("index.html")

@app.route("/CreateMenu/<storename>")
@app.route("/Createmenu/<storename>")
def view_menu(storename):
return render_template("index.html")

@@ -45,6 +45,10 @@ def view_StoreDetail(storename):
print("/////////////////////")
return render_template("index.html")

@app.route("/reviewAll")
def view_reviewAll():
return render_template("index.html")



##################### Submit Data #####################
@@ -65,6 +69,7 @@ def Submit_store():
else:
return "The submitted store already exists!"

#수정
@app.route("/UpdateStore_submit", methods=['POST'])
def Update_store():
if request.method == 'POST':
@@ -75,13 +80,12 @@ def Update_store():
if img_file:
img_file.save( "./flask-server/static/img/"+img_file.filename) #이미지 저장경로를 public/assets에 합니다
if DB.update_store(storename, data, img_file.filename):
return redirect(url_for('view_registeredstore', storename=storename))

return redirect(url_for('view_registeredstore', storename=storename))
else:
return "The submitted store already exists!"


@app.route("/CreateMenu/<storename>",methods=['POST'])
@app.route("/Createmenu/<storename>",methods=['POST'])
def Submit_menu(storename):
if request.method == 'POST':
data = request.form
@@ -100,14 +104,15 @@ def Submit_menu(storename):
def Submit_Review(storename):
if request.method == 'POST':
data = request.form
timestamp=data['timestamp']
username = data['username']
reviewtitle = data['reviewtitle']
reviewdesc = data['reviewdesc']
img_file = request.files['file']
if img_file:
img_file.save("./flask-server/static/img/"+img_file.filename)
if DB.insert_review(storename, data, img_file.filename):
return redirect(url_for('StoreListView'))
return redirect(url_for('view_StoreDetail'))


##################### Get data from DB #####################
@@ -127,6 +132,28 @@ def list_stores():
storedatajson = json.dumps(storedata)
return storedatajson

#홈페이지 랜덤 4개 받아오기
@app.route("/Homepage_send_data", methods=['GET','POST'])
def random_list_stores():
if request.method == 'GET':
storedata = DB.get_store() #read the table
random_storedata = random.sample(list(storedata.items()), 4) #중복없이 4개를 가져옵니다
for i in range (0,4): #식당 갯수(4)개만큼 반복
random_storename=random_storedata[i][1]['storename']
random_review_all = DB.get_review(random_storename) #랜덤뽑기된 식당 이름으로 리뷰데이터 가져옴
print("여기부터데이터4개임??")
print(random_review_all)
if (random_review_all) : #리뷰가 있으면
random_review = random.sample(list(random_review_all.items()), 1) #그중에 아무거나 하나 뽑음
random_storedata[i][1]['reviewtitle'] = random_review[0][1]['reviewtitle']
random_storedata[i][1]['reviewdesc'] = random_review[0][1]['reviewdesc']
else : #아직 등록된 리뷰가 없으면
random_storedata[i][1]['reviewtitle'] = '이런!'
random_storedata[i][1]['reviewdesc'] = '이 식당은 아직 등록된 리뷰가 없어요.'
random_storedatajson = json.dumps(random_storedata)
return random_storedatajson


# #맛집세부정보(storedetail)에서 메뉴 정보 받아오기
# @app.route("/Menu_send_data", methods=['GET','POST'])
# def list_Menu():
@@ -150,9 +177,11 @@ def list_review(storename):
reviewdata = DB.get_review(storename) #read the table
menudatajson = json.dumps(reviewdata)
return menudatajson

@app.route("/Review_send_data",methods=['GET'])
def list_reviews():
all_reviews=DB.get_all_review()
# all_reviews=DB.get_review
reviewjson=json.dumps(all_reviews)
return reviewjson
# def make_average():
@@ -217,5 +246,6 @@ def list_stores():
def view_storelist(store_id):
return render_template("index.html")
'''

if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
25 changes: 23 additions & 2 deletions flask-server/database.py
Original file line number Diff line number Diff line change
@@ -125,7 +125,7 @@ def update_store(self,storename,data,img_path):
"price1" : data['price1'],
"price2" : data['price2'],
"site" : data['site'],
"img_path" : "static/image/"+img_path
# "img_path" : img_path
}

stores = self.db.child("STORE").get()
@@ -176,6 +176,7 @@ def menu_duplicate_check(self, storename, menuname):

def insert_review(self, storename, data, img_path):
review_info ={
"timestamp":data['timestamp'],
"storename" : storename,
"storescore" : data['storescore'],
"username" : data['username'],
@@ -207,9 +208,29 @@ def get_menu(self,storename):

def get_review(self,storename):
reviews = self.db.child("REVIEW").child(storename).get().val() #해당 맛집의 메뉴들을 가져옴
sorted_by_times=self.db.child("REVIEW").child(storename).order_by_child("timestamp")
return reviews

def get_all_review(self):
stores=self.db.child("REVIEW").get().val()
# # review_all[100]
# review_all={}
# review_info={}
# i=0
# for store in stores:
# # review_all=zip(review_all, review_instore)
# user=self.db.child("REVIEW").child(store).get()
# if user:
# # review=self.db.child("REVIEW").child(store).get().val()
# # keys=self.db.child("REVIEW").child(store).get().key()
# # for keyinreview in keys:
# # review_all[store]=[user][keyinreview]=self.db.child("REVIEW").child(store).get(keyinreview)
# # i=i+1
# review_info[user]=self.db.child(store).get().val()
# review_all[store]={review_info}

print(stores)
for store in stores:
review_all=self.db.child("REVIEW").child(store).get().val()
return review_all

return stores
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added flask-server/static/img/YakitoriM0826.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added flask-server/static/img/default-pasta.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added flask-server/static/img/noneimage.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added flask-server/static/img/pexels-ash-376464.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions flask-server/static/react/asset-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"files": {
"main.css": "/static/react/css/main.a9e07865.css",
"main.js": "/static/react/js/main.fa6ba558.js",
"js/787.ec704a7a.chunk.js": "/static/react/js/787.ec704a7a.chunk.js",
"media/symbol-mark.png": "/static/react/media/symbol-mark.8a35bde01c62d01eaa4b.png",
"media/sample.PNG": "/static/react/media/sample.5b41e09dc2adbb809249.PNG",
"media/logo.svg": "/static/react/media/logo.6ce24c58023cc2f8fd88fe9d219db6c6.svg",
"../../templates/index.html": "/static/react/../../templates/index.html",
"main.a9e07865.css.map": "/static/react/css/main.a9e07865.css.map",
"main.fa6ba558.js.map": "/static/react/js/main.fa6ba558.js.map",
"787.ec704a7a.chunk.js.map": "/static/react/js/787.ec704a7a.chunk.js.map"
},
"entrypoints": [
"css/main.a9e07865.css",
"js/main.fa6ba558.js"
]
}
2 changes: 1 addition & 1 deletion flask-server/templates/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/static/react/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/static/react/logo192.png"/><link rel="manifest" href="/static/react/manifest.json"/><title>맛집 웹사이트</title><script defer="defer" src="/static/react/js/main.a3164177.js"></script><link href="/static/react/css/main.12e1cd4f.css" rel="stylesheet"></head><body><noscript></noscript><div id="root"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/static/react/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/static/react/logo192.png"/><link rel="manifest" href="/static/react/manifest.json"/><title>맛집 웹사이트</title><script defer="defer" src="/static/react/js/main.fa6ba558.js"></script><link href="/static/react/css/main.a9e07865.css" rel="stylesheet"></head><body><noscript></noscript><div id="root"></div></body></html>
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -3,7 +3,6 @@
"version": "0.1.0",
"private": true,
"proxy": "http://127.0.0.1:5000",
"homepage": "/static/react",
"dependencies": {
"@babel/core": "^7.16.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
4 changes: 2 additions & 2 deletions src/App.js
Original file line number Diff line number Diff line change
@@ -42,14 +42,14 @@ function App() {
<Route path="/" element={<Homepage />}></Route>
<Route path="/CreateStore" element={<CreateStore />}></Route>
<Route path="/RegisteredStore/:storename" element={<RegisteredStore />}></Route>
<Route path="/CreateMenu/:storename" element={<CreateMenu />}></Route>
<Route path="/Createmenu/:storename" element={<CreateMenu />}></Route>
{/* <Route path="/CreateMenu/:id" element={<CreateMenu />}></Route> */}
<Route path="/CreateReview/:storename" element={<CreateReview />}></Route>
<Route path="/Homepage" element={<Homepage />}></Route>
<Route path="/MyPage" element={<MyPage />}></Route>
<Route path="/MyPageBookmark" element={<MyPageBookmark />}></Route>
<Route path="/MyPageMenu" element={<MyPageMenu />}></Route>
<Route path="/ReviewAll" element={<ReviewAll />}></Route>
<Route path="/reviewAll" element={<ReviewAll />}></Route>
<Route path="/SignUp" element={<SignUp />}></Route>
<Route path="/StoreDetail/:storename" element={<StoreDetail />}></Route>
{/*<Route path="/CreateMenu/:storename" element={<CreateMenu />}></Route>*/}
16 changes: 16 additions & 0 deletions src/component/Alert.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import React, { useEffect } from 'react';
import styles from '../css/Alert.module.css';

const Alert = ({ type, msg, removeAlert }) => {
useEffect(() => {
const timeout = setTimeout(() => {
removeAlert();
}, 2500);
return () => clearTimeout(timeout);
});
return <p class={styles.danger}>{msg}</p>;
}



export default Alert;
1 change: 0 additions & 1 deletion src/component/catagories.js
Original file line number Diff line number Diff line change
@@ -6,7 +6,6 @@ import { FaCaretDown } from 'react-icons/fa';


const Categories = ({ categories, filterItems, selected, setSelected }) => {
console.log('여기까지 오나요?');
const[isActive, setIsActive] = useState(false);
return (
<div class={styles.dropdown}>
29 changes: 19 additions & 10 deletions src/component/hotTopic.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
import { Link } from 'react-router-dom';
import styles from '../css/Contents.module.css';
import { Link, useParams, useLocation } from 'react-router-dom';
import styles from '../css/HotTopic.module.css';
import { useParams, useLocation } from 'react-router-dom';
import { useState, useEffect } from 'react';
import sample from "../img/sample.PNG";
import samplelocation from "../img/location.png";

function HotTopic(){
function HotTopic(props){

const hotStorename = useParams().storename;
var storeimg = props.img
var storelocation = props.location
var storename = props.name
var reviewtitle = props.reviewtitle
var reviewdesc = props.reviewdesc //string


console.log(storeimg)

return (
<Link to="/StoreDetail" class={styles.hotlist}>
<img src={sample} width="250" height="260" />
<Link to={`/StoreDetail/${storename}`} class={styles.hotlist}>
<img src={"http://127.0.0.1:5000/static/img/" + `${storeimg}`} class={styles.img} width="250" height="260" />
<div class={styles.hotdesc}>
<div class={styles.upcontainer}>
<div class={styles.descname}>식당 이름</div>
<div class={styles.descname}>{storename}</div>
{/* <div class = "star">별점</div> */}
</div>
<div class={styles.descloca}><img src={samplelocation} width="14" height="14" />위치 신촌동 어쩌구</div>
<div class={styles.menuname}>메뉴 이름</div>
<div class={styles.review}>리뷰 본문 샘플입니다.</div>
<div class={styles.descloca}><img src={samplelocation} width="14" height="14" />{storelocation}</div>
<div class={styles.menuname}>{reviewtitle}</div>
<div class={styles.review}>{reviewdesc}</div>
</div>
</Link>
)
41 changes: 31 additions & 10 deletions src/component/info.js
Original file line number Diff line number Diff line change
@@ -21,14 +21,34 @@ function Info(props) { //storedetail에서 정보들 props로 받아옴
const storetime1 = props.storetime1
const storetime2 = props.storetime2
const params = useParams().storename;

const [storedata, setData] = useState()
var storearr = new Array();

useEffect(() => {
fetch(`/get_registered_store/${params}`, { //json 데이터를 받아옴
headers: {
Accept: 'application/json',
method: 'GET'
}
})
.then(response => response.json())
.then(jsonData => {
storearr[0] = jsonData;
setData(storearr);
})
.catch((err) => console.log(err))
}, [])
console.log(storedata)

const GoCreateReview = () => {

navigate(`/CreateReview/${storename}`);
console.log("Pushed")
navigate(`/CreateReview/${params}`);
// console.log("Pushed")
}
const GoRegisteredStore = () => {

navigate(`/RegisteredStore/${storename}`);
navigate(`/RegisteredStore/${params}`);

}
// const [storedata, setData] = useState()
@@ -81,18 +101,19 @@ function Info(props) { //storedetail에서 정보들 props로 받아옴
</div>
</div>
<div class={styles.buttons}>
<Link to={`/RegisteredStore/${props.storename}`}><button onClick={GoRegisteredStore} class={styles.button}>정보 수정</button></Link>
<Link to={`/RegisteredStore/${params}`}><button onClick={GoRegisteredStore} class={styles.button}>정보 수정</button></Link>
<Link to={`/CreateReview/${params}`}
state={{
storefood: storefood,
storeimg: storeimg
}} ><button onClick={GoCreateReview} class={styles.button}>리뷰 등록</button></Link>
// state={{
// storefood: storefood,
// storeimg: storeimg
// }}
><button onClick={GoCreateReview} class={styles.button}>리뷰 등록</button></Link>

</div>

<div class="map">
{/* <div class="map">
지도API
</div>
</div> */}
</div>
</div>
);
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.