Skip to content

LM-TeamProject/travel-here

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Travel-here

✈ travel-here는 전 세계의 여행후기글을 볼 수 있는 여행후기 플랫폼입니다.

사이트 보러가기

FIGMA 프로토타입


목차

  1. 팀원 소개
  2. 기술 스택
  3. 프로젝트 설치 및 실행 방법
  4. 폴더 디렉토리
  5. 프로젝트 기능 설명
  6. 버그
  7. 아쉬운 점 / 개선할 점

1. 팀원

  • 전상우(팀장)
  • 김현수
  • 박현정
  • 임상기

2. 기술 스택



3. 프로젝트 설치 및 실행 방법

$ npm install
$ yarn install
$ yarn start

4. 폴더 디렉토리

📦public
┗ 📜index.html
📦src
┣ 📂assets
┃ ┗ 📂images
┃ ┃ ┣ 📜background.jpeg
┃ ┃ ┣ 📜blur.png
┃ ┃ ┗ 📜logo.png
┣ 📂components
┃ ┣ 📂Category
┃ ┃ ┣ 📜Category.jsx
┃ ┃ ┣ 📜Category.style.js
┃ ┃ ┗ 📜CategorySkeleton.jsx
┃ ┣ 📂Comment
┃ ┃ ┣ 📜Comment.jsx
┃ ┃ ┣ 📜Comment.style.js
┃ ┃ ┣ 📜CommentList.jsx
┃ ┃ ┗ 📜styleConstants.js
┃ ┣ 📂GreetingCard
┃ ┃ ┣ 📜GreetingCard.jsx
┃ ┃ ┗ 📜GreetingCard.style.js
┃ ┣ 📂Header
┃ ┃ ┣ 📜Header.jsx
┃ ┃ ┗ 📜Header.style.js
┃ ┣ 📂Loading
┃ ┃ ┗ 📜Loading.jsx
┃ ┣ 📂LoginHelp
┃ ┃ ┣ 📜LoginHelp.jsx
┃ ┃ ┗ 📜LoginHelp.style.js
┃ ┣ 📂LoginModal
┃ ┃ ┣ 📂footer
┃ ┃ ┃ ┣ 📜LoginFooter.jsx
┃ ┃ ┃ ┗ 📜LoginFooter.style.js
┃ ┃ ┣ 📂header
┃ ┃ ┃ ┣ 📜LoginHeader.jsx
┃ ┃ ┃ ┗ 📜LoginHeader.style.js
┃ ┃ ┣ 📜LoginModalOpen.jsx
┃ ┃ ┗ 📜LoginModalOpen.style.js
┃ ┣ 📂Logo
┃ ┃ ┣ 📜Logo.jsx
┃ ┃ ┗ 📜Logo.style.js
┃ ┣ 📂Mypage
┃ ┃ ┣ 📂bookmark
┃ ┃ ┃ ┣ 📜Bookmark.jsx
┃ ┃ ┃ ┗ 📜Bookmark.style.js
┃ ┃ ┣ 📂comment
┃ ┃ ┃ ┣ 📜Comment.jsx
┃ ┃ ┃ ┗ 📜Comment.style.js
┃ ┃ ┣ 📂info
┃ ┃ ┃ ┣ 📜Info.jsx
┃ ┃ ┃ ┗ 📜Info.style.js
┃ ┃ ┣ 📂Password
┃ ┃ ┃ ┣ 📜Password.jsx
┃ ┃ ┃ ┗ 📜Password.style.js
┃ ┃ ┣ 📂post
┃ ┃ ┃ ┣ 📜Post.jsx
┃ ┃ ┃ ┗ 📜Post.style.js
┃ ┃ ┣ 📜Mypage.jsx
┃ ┃ ┣ 📜Mypage.style.js
┃ ┃ ┗ 📜styleConstatns.js
┃ ┣ 📂NavBar
┃ ┃ ┣ 📜NavBar.jsx
┃ ┃ ┗ 📜NavBar.style.js
┃ ┣ 📂NavLinks
┃ ┃ ┣ 📜NavLinks.jsx
┃ ┃ ┗ 📜NavLinks.style.js
┃ ┣ 📂Post
┃ ┃ ┣ 📂PostSlider
┃ ┃ ┃ ┣ 📜ContentPlaceholder.js
┃ ┃ ┃ ┣ 📜PostSlider.jsx
┃ ┃ ┃ ┗ 📜PostSlider.style.js
┃ ┃ ┣ 📜NoneMember.jsx
┃ ┃ ┣ 📜Post.jsx
┃ ┃ ┣ 📜Post.style.js
┃ ┃ ┗ 📜styleConstants.js
┃ ┣ 📂PostCard
┃ ┃ ┣ 📜ContentPlaceholder.js
┃ ┃ ┣ 📜PostCard.jsx
┃ ┃ ┗ 📜PostCard.style.js
┃ ┗ 📂Write
┃ ┃ ┣ 📂WriteBtn
┃ ┃ ┃ ┣ 📜WriteBtn.jsx
┃ ┃ ┃ ┗ 📜WriteBtn.style.js
┃ ┃ ┗ 📂WriteModal
┃ ┃ ┃ ┣ 📜UpdateModal.jsx
┃ ┃ ┃ ┣ 📜WriteModal.jsx
┃ ┃ ┃ ┗ 📜WriteModal.style.js
┣ 📂hooks
┃ ┗ 📜useAuth.js
┣ 📂pages
┃ ┣ 📂Board
┃ ┃ ┣ 📜Board.jsx
┃ ┃ ┗ 📜Board.style.js
┃ ┣ 📜CategoryList.jsx
┃ ┣ 📜Home.jsx
┃ ┣ 📜Login.jsx
┃ ┣ 📜LoginFind.jsx
┃ ┣ 📜MyPage.jsx
┃ ┣ 📜NotFound.jsx
┃ ┣ 📜NotFound.style.js
┃ ┗ 📜Write.jsx
┣ 📂store
┃ ┣ 📂apis
┃ ┃ ┣ 📜board.js
┃ ┃ ┣ 📜comment.js
┃ ┃ ┣ 📜delete.js
┃ ┃ ┣ 📜post.js
┃ ┃ ┣ 📜postLike.js
┃ ┃ ┗ 📜userLike.js
┃ ┣ 📂modules
┃ ┃ ┣ 📜board.js
┃ ┃ ┣ 📜bookmark.js
┃ ┃ ┣ 📜category.js
┃ ┃ ┣ 📜comment.js
┃ ┃ ┣ 📜delete.js
┃ ┃ ┣ 📜login.js
┃ ┃ ┣ 📜mypageBookmark.js
┃ ┃ ┣ 📜mypageComment.js
┃ ┃ ┣ 📜mypagePost.js
┃ ┃ ┣ 📜nav.js
┃ ┃ ┣ 📜postLike.js
┃ ┃ ┣ 📜user.js
┃ ┃ ┣ 📜userLike.js
┃ ┃ ┗ 📜view.js
┃ ┗ 📜index.js
┣ 📂styles
┃ ┣ 📜Background.js
┃ ┗ 📜GlobalStyle.js
┣ 📂utils
┃ ┗ 📜getDate.js
┣ 📜App.js
┣ 📜auth_service.js
┣ 📜firebase.js
┣ 📜history.js
┗ 📜index.js

5. 프로젝트 기능 설명


시연영상

https://www.youtube.com/watch?v=E1qkUKJi3Ho

로그인

상세보기

이메일과 비밀번호로 로그인/회원가입

travel-1이메일로그인회원가입!

SNS 로그인

travel-1sns로그인!

SNS 회원가입

travel-1sns회원가입!

로그인/회원가입 오류메세지

로그인 비밀번호 오류가 나면 비밀번호 재설정 버튼이 생성됩니다.

travel-1로그인회원가입오류들!

비밀번호 재설정

이메일로 비밀번호 재설정을 안내합니다.

travel-1비번변경!


게시글 쓰기

상세보기

전체적인 게시글쓰기 스타일

제목, 내용, 지역은 필수작성으로 입력내용 없이 등록을 누르면 알림문구가 뜹니다.

travel-2글쓰기스타일!

글등록

제목, 내용, 지역, 사진(선택)을 작성한 후 등록을 누르면 해당 게시글로 바로 이동합니다.

travel-2글쓰기!


게시판 (Board)

상세보기

카테고리 --> 게시판

지역별 카테고리에서 특정지역을 선택하면, 해당 지역의 게시글들을 모아볼 수 있습니다.
특정 게시글을 선택하면 해당 게시글이 띄워집니다.

용줄3카테고리


게시글 (Post)

상세보기

좋아요, 북마크 기능

travel-5좋아요찜!

게시글, 댓글은 본인일 경우에만 수정/삭제가 가능

travel-5본일일때수정삭제토글!

게시글, 댓글의 수정/삭제 기능

travel-5수정삭제!


마이페이지

상세보기
전체적인 마이페이지 디자인입니다.
왼쪽창에서 같은 목록, 또는 오른쪽 창에서 < 아이콘을 누르면 창이 닫힙니다.

travel-6마이페이지스타일

닉네임, 프로필사진 수정 기능입니다.
프로필사진은 기본사진이 아닐 때 수정할 경우 '기본사진으로 변경' 버튼이 추가됩니다.

travel-6닉네임사진수정

수정사항은 게시글쓰기, 게시글, 댓글에서 모두 바로 반영됩니다.

travel-6즉시반영

내가 쓴 글, 댓글, 찜 목록을 클릭하면 해당 게시글로 이동합니다.

travel-6마이페이지이동

이메일로 로그인 했을 때에만 비밀번호 변경 창이 뜹니다.

travel-6비번변경창유무

비밀번호 변경 시 현재 비밀번호로 재인증을 한 후 맞게 입력한 경우에만 변경이 가능합니다.

travel-6마이페이지비번

탈퇴하기를 클릭하면 탈퇴 여부를 선택하여 탈퇴 할 수 있습니다.

travel-6탈퇴


비회원

상세보기

로그인하지않고 게시글을 클릭하면 다음과같은 창이 뜹니다.

travel-7비회원!

또한 navBar에 mypage, 우측하단 게시글쓰기 버튼이 뜨지 않습니다.


404 not Found

상세보기

404오류 화면입니다.

travel-7_404!


반응형

상세보기

로그인/회원가입 반응형

travel-로그인반응형!

게시판/게시글 반응형

post반응형

마이페이지 반응형

마이페이지반응형

카테고리, 게시글 쓰기, 알림창 반응형

각종반응형


6. 버그

1. 마이페이지 - 내 정보 - 닉네임 변경이 간헐적으로 안되는 경우

7. 아쉬운 점 / 개선할 점

팀원 아쉬운 점 개선할 점
박현정 역할 분배를 페이지별로 했더니 특정 사람에게 너무 많은 역할이 주어졌습니다. 개발을 시작하기 전에 기능별 정의를 분명하게 하고 그 기능별로 역할 분배를 해야겠다고 느꼈습니다.
리덕스의 action이 너무 많아진 느낌입니다. 개발을 하면서 그때그때 중복된 부분을 정리해야할 것 같습니다.
데이터를 정의할 때 어떤 type의 값을 넣을건지를 정확히 정하지 않아 나중에 수정할 일이 많았습니다. 개발 전 단계에서 데이터타입을 정확하게 해야겠다고 느꼈습니다. 예를 들어 post id는 string타입의 date.now로 하자는 식으로요.
firebase와 redux상태간의 정확한 정리가 없어 헷갈리는 일이 많았습니다. firebase에서 받아오는 사용자와, redux에서의 사용자를 서류상으로 정확하게 명시해놓고 각각 어떻게 쓸것인지 팀원들과 정의하는 시간을 가져야할 것 같습니다.
코드리뷰가 적극적으로 이루어지지 않았던 것 같습니다. 제가 짠 코드가 괜찮은 코드인지 아닌지를 판단하기 어려웠고, 팀원이 짠 코드를 제대로 파악하기 힘들었습니다. 팀프로젝트이니만큼 프로젝트에 사용된 코드에 모두가 책임감을 가져야한다고 생각합니다. 그 책임감을 지려면 어느정도 코드리뷰에 강제성이 있어야될 것 같습니다.
김현수 정확한 디자인이 없었던 점 figma를 사용해서 대략적인 디자인이 있었지만 기능 및 세부사항들을 개발하면서 추가하여 프로젝트의 기간이 늘어지는 상황이 됐습니다. 시간이 좀 걸리더라도 기능별 세부사항과 디자인을 확정시켜두고 개발하는 방법이 좋을 것 같습니다.
대화의 부재 프로젝트를 진행할 때 서로 도움이 될 수 있는 부분이 있었지만 내꺼 하기에 바쁘다는 핑계가 있었던 것 같습니다. 개발 스케쥴을 내 작업에만 맞췄던 것 같습니다.
다른 사람의 코드를 확인하지 못함 흐름정도만 파악한 뒤 정확한 동작을 확인하지 않았습니다. 더 세심하게 보는 습관을 가져야 할 것 같습니다.
전상우
코드 리뷰의 문제점 코드 리뷰 담당자를 한 명씩 정해서 이상이 있으면 연대 책임시키기
너무 많은 state 추적 중인 state가 15개이다. 비슷한 위치에 놓인 컴포넌트끼리는 state를 통하해도 좋지 않을까? 예를 들어 mypage, board, post 3개로.
너무 많은 Boilerplate redux 자체의 문제점. redux toolkit을 사용하는 것이 좋을 듯 하다. 최근에는 비동기적인 작업을 redux-saga 대신에 react-query, swr, apollo로 대신한다고 하니 다음 프로젝트에서는 이를 활용해보는 것이 좋을 듯 하다.
서로 다른 코딩 방식 3가지 방법으로 이를 해결할 수 있을듯 하다. 첫 번째는 ESLint와 Prettier을 맨처음 세팅할 때 설정하는 것. 두 번째는 변수명을 좀 더 명확하게 짓는 것. 세 번째는 주석을 좀 더 명확하게 다는 것
임상기 해결되지 않는 문제를 혼자 끙끙 앓고 있던 것이 아쉽습니다. 모르는 것들은 팀원들과 상의하면서 프로젝트를 하면 좋을 거 같습니다.
프로젝트 기간을 정확히 정하지 않고 계속 연장했던 부분이 아쉽습니다. 프로젝트의 우선순위를 두어 필요한 기능을 먼저 구현하여 완성하고, 나머지 기능들은 그 다음에 완성을 해나가면 좋을 것 같습니다.
리덕스 강의는 들었으나 적용을 하지 못한 점이 아쉽습니다. 프로젝트 끝나고 개인적으로 리덕스를 적용하면서 이해를 더 높여야겠습니다.
영어 실력 부족. 번역기를 쓴다지만 어느 정도 영어 실력은 있으면 훨씬 수월할 것 같습니다. 영어 원문을 보고 해석하는 연습을 조금씩이라도 해야 될 것 같습니다.
*** 향후 계획 ***
Node.js도 배워 볼 계획입니다. 파이어스토어가 아닌 Node.js를 통해서도 백엔드를 구현해볼 수 있도록 공부할 계획입니다.

About

travel place introduction site

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •