웹개발 미니 프로젝트01

장재원·2021년 9월 13일
0

porject

목록 보기
1/1
post-thumbnail
  1. 프로젝트 이름 : 맛집의 정석 (맛집을 찾아서 떠나자)

  2. 와이어프레임 사진:
    https://www.canva.com/design/DAEp2jCrqEw/UkU15jMl6o5yCLgBYfCscg/view

  3. 마음대로 끄적어본 api 설계.. :
    https://hungry-runner-975.notion.site/be69b53499004d08a1f4909ee4495140?v=47560440a1e942829353028a87404acc

  4. 깃허브 :
    https://github.com/Sollertia/mini-project-best_restaurants

  5. 구현 유튜브 링크 :
    https://youtu.be/rHKxNu9u83A

  6. 구현 홈페이지 링크 :
    http://13.125.34.122/

[필수 포함 사항]

  • 처음으로 배정된 팀원들과, 사전과제에 공부한 지식을 바탕으로 프로젝트를 완성해보세요.
    ㄴ 한 명의 AWS EC2에 업로드하고, 도메인을 붙여 제출합니다.

  • 아이디어는 유쾌한 것, 의미있는 것, 또는 무엇이든!!!.

  • Jinja2 템플릿 엔진을 이용한 서버사이드 렌더링 (어떤 장점이 있을까?)
    ㄴ 웹개발 플러스 2주차 내용 훑어보기

  • JWT 인증 방식으로 로그인 구현하기 (쿠키/세션 방식에 비해 어떤 장점이 있을까?)
    ㄴ 웹개발 플러스 4주차 내용 훑어보기

    👨🏻‍💻 Member


김기철(https://github.com/GCEE91)

최원빈(https://github.com/Sollertia)

장재원(https://github.com/JangJaeWon22)

안정우(https://github.com/jeoungwoo)


🚀 개발 기록

👨‍🔧 로그인 ,회원가입

  • 주요기능

    • 회원가입시 정규화를 사용하여 필요정보를 필터링 하였습니다.

    • 회원가입시 아이디 중복확인 기능을 넣었습니다.

    • 로그인시 JWT를 발행하여 사용자 인증을 하였습니다.

🌐 게시판

  1. 게시판 목록

    • 글 목록화면에서 최신글이 먼저 보일 수 있도록 만들었고 게시글의 추천수를 반영하여 모든페이지에서 상위에 고정될 수 있도록 만들었습니다.
  2. 게시글

    • 글 상세보기에서는 추천을 누를 수 있도록 하였고 글작성자가 들어왔을 때는 수정,삭제를 할 수 있도록 만들었습니다. 추가) 보고있던 글에서 목록으로 되돌아갔을 때 보고있던 목록페이지로 넘어가도록 만들었습니다.
    • 기본적인 글 작성, 수정, 삭제는 구현되어있습니다.
  3. 게시판 페이지, 검색

    • 검색기능을 만들어 검색어에 포함된 내용에 해당되는 글을 보여주도록 만들었고 검색 후 페이지 이동을 해도 계속해서 검색되어진 글들을 볼 수 있도록 설정하였습니다.
    • 페이지 설정은 기존에 내장되어있는 패키지를 사용하지 않고 직접 알고리즘을 만들어 구현하였습니다.

👨🏻‍💻맛집 검색, 맛집 일기장

  1. 맛집 검색 구현 화면

    • main page 내의 검색 창을 활용하여 네이버(https://www.naver.com/) 검색창에 대해 crawling 구현

      • "성신여대" 검색 시 urllib 패키지를 사용 하여 "성신여대의 맛집"으로 crawling 하여 음식점 상호 명, 음식점 메뉴, 음식점 별점을 가지고 왔습니다.
      • 음식점의 image의 경우 첫 crawling의 결과에서 background image에 링크가 있어서 다시 한번 crawling하는 과정을 통해 data를 가지고 왔습니다.
        • 음식점의 image의 경우 첫 crawling의 결과에서 background image에 링크가 있어서 다시 한번 crawling을 하여, 음식점의 사진을 가지고 왔습니다.
    • crawling 결과 값을 DB에 저장하여 main page에 카드 형식으로 삽입

      • 음식점의 image가 없는 경우도 발생하여, "이미지 없음"의 url를 따로 가지고 if문을 통해 조건에 맞게 나올 수 있도록 구현 했습니다.

      • 카드의 형태에는 db에 저장된 자료를 가져오고, "맛집 일기 쓰기" 버튼을 구현 하였습니다.

      • "맛집 일기 쓰기" 버튼의 기능으로는 modal창의 형식의 팝업이 될 수 있도록 하였고,

        modal창의 내용엔 review를 작성할 수 있도록 구현했습니다.

        • modal창의 "맛집 찜하기"

          onClick() 함수를 통해, 현재 로그인 한 user의 payload[_id]값과 함께 음식점의 상호 명, 음식점의 메뉴, 음식점의 별점, 현재 작성한 리뷰를 같이 db에 저장합니다.

  2. 맛집 일기장 구현 화면

    • user의 찜 목록 DB에서 음식점 data 및 review 추출
      • DB에 저장되어 있는 data를 가지고 올 때, 현재 로그인한 user의 userEmail과 "맛집 찜하기" 버튼을 사용하여 data를 저장했던 user의 userEmail과 비교하여 같을 경우에만 자료를 넘겨주었습니다.

맛의 정석 API

profile
화이팅!!

0개의 댓글