Git Product home page Git Product logo

mytrip-flask's Introduction

스파르타 내일배움캠프 1차 프로젝트

🔖 Starting Assignment

https://url.kr/stjhol


🏠 소개

지금 떠날 수 있는 여행지는 어디??

여행 가고 싶은 지역의 생생한 여행 정보, 여행 후기(날씨 등)를 확인 할 수 있는 여행어때와 함께 떠나보세요!


⏲️ 개발기간

2021년 9월 23일 ~ 10월 1일


🧙 멤버구성

김경중
서태욱
장효진


📌 기술 선택 이유!

  • 강의를 보면서 배웠던 기술들이고, 아직 무거운 웹앱을 만드는 것이 아니기 때문에 Flask와 MongoDB가 적합하다고 생각했습니다.
  • css를 하나하나 조정하며 예쁘게 꾸미고 싶지만, 모두 백엔드 개발 희망자이기도 해서 UI는 부트스트랩, CodePen, Bulma를 참고했습니다.
  • AWS EB와 GitHub Action을 통해 자동배포 환경을 구축했습니다.
  • 이미지를 업로드할 시 AWS S3에 업로드가 되며 해당 이미지를 AWS Cloudfront를 통해 불러오도록 했습니다.

Open API 사용


📌 주요 기능

반응형 설계

  • 모바일 기기를 많이 사용하는 만큼 사용자가 보기 편하게 설계했습니다.

위치 API 기반 내 주변 여행지 추천

  • 내 현재 위치를 기반으로 주변의 여행지를 추천합니다.
  • 해당 여행지의 위치를 지도로 볼 수 있습니다.

날씨 API를 이용한 여행지 날씨 정보 제공

  • 여행을 떠나려는 곳의 날씨 정보를 제공합니다.

내가 가본 여행지 리뷰 글 작성 / 수정 / 삭제

  • 가본 여행지에 대한 리뷰 글을 작성, 조회, 수정, 삭제할 수 있습니다.

좋아요 / 즐겨찾기

  • 좋아요 기능으로 리뷰 글을 추천할 수 있고, 내 주변 여행지를 즐겨찾기로 모아볼 수 있습니다.

📌 문제를 이렇게 해결했어요!

트러블슈팅


📌 WIKI

WIKI로 이동


📌 기타

한국관광공사 API: 일일 트래픽 1000까지
날씨 API: 분당 트래픽 60까지

mytrip-flask's People

Contributors

97kim avatar woogys avatar hyojin-dev avatar

Watchers

 avatar

Forkers

hyojin-dev woogys

mytrip-flask's Issues

코딩 컨벤션 통일

변수명: 스네이크 케이스
함수명(파이썬): 스네이크 케이스
함수명(자바스크립트): 카멜 케이스
파일명: 카멜 케이스

이렇게 변경해서 Merge 했습니다.

공지 - main.html을 기본 홈페이지로 변경

main.html을 기본 홈페이지로 변경하고
권한이 필요할 때 로그인 페이지로 이동하게 변경해야 합니다.

추가로 application.py에서 중복되는 코드를 데코레이터를 이용해 중복 최소화 해야 합니다.
(ex. JWT 로그인 기능)

trips id가 중복되는 이슈 발생

trips id를 trips 컬렉션의 필드 개수를 세서 1을 더하는 형식으로 사용했습니다.

'id': db.trips.count() + 1,

이렇게 하면 게시글 하나를 지우고 새로 생성했을 때 id가 중복되는 이슈가 발생합니다.

mongoDB의 ObjectId를 사용하는 것으로 수정해야 합니다.

비 안 올 때 날씨 API에서 강수량 부분 오류 발생

스크린샷 2021-10-08 오후 5 31 20

비가 오면
스크린샷 2021-10-08 오후 5 37 07
날씨 API에서 rain이라는 항목을 파싱할 수 있습니다.

하지만 비가 오지 않을 때는 rain이라는 항목이 뜨지 않기 때문에 오류가 발생했었습니다.

기존 코드:

let weather = response['weather_info']['weather'][0]['main'];
let rain = response['weather_info']['rain']['1h'];
$('#rain').text(rain + 'mm/h');

수정한 코드:

let weather = response['weather_info']['weather'][0]['main'];
if (weather == 'Rain') {
    let rain = response['weather_info']['rain']['1h'];
         $('#rain').text(rain + 'mm/h');
}

let weather = response['weather_info']['weather'][0]['main'];
weather 변수에는 날씨 API에서 파싱해온 현재의 날씨의 종류가 저장됩니다.

날씨의 종류로는 sky is clear, few clouds, scattered clouds, broken clouds, overcast clouds, shower rain, light rain, moderate rain, Rain, Thunderstorm, snow, mist 등이 있습니다.

비가 올 때만 강수량이 뜨도록 변경해서 오류를 해결했습니다.

2차 프로젝트 기능 추가 사항

첫 화면 생성
회원가입 / 로그인 기능
추천 여행지 기능
근처 여행지 리스트 / 리뷰 리스트
근처 여행지 상세페이지 / 리뷰 상세페이지
날씨
프로필 사진 추가
공유하기
좋아요 / 즐겨찾기
댓글
AWS S3 / 자동 배포

코딩 컨벤션 통일

변수명: 스네이크 케이스
함수명(파이썬): 스네이크 케이스
함수명(자바스크립트): 카멜 케이스
파일명: 카멜 케이스

PEP8 적용

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.