{"id":27780535,"url":"https://github.com/leedo97y/tripmatch","last_synced_at":"2026-04-07T21:31:51.303Z","repository":{"id":112710211,"uuid":"584067079","full_name":"leedo97y/TripMatch","owner":"leedo97y","description":"SW3 2차 Trip Match 여행 동행자 구하기 프로젝트","archived":false,"fork":false,"pushed_at":"2023-01-29T09:19:36.000Z","size":927,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-08-31T15:37:03.318Z","etag":null,"topics":["eslint","prettier","react","redux-toolkit","rtk-query","styled-components","toast-ui","typescript","yarn"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leedo97y.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-01T07:19:36.000Z","updated_at":"2025-01-17T20:57:46.000Z","dependencies_parsed_at":"2023-09-12T17:38:49.706Z","dependency_job_id":null,"html_url":"https://github.com/leedo97y/TripMatch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/leedo97y/TripMatch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leedo97y%2FTripMatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leedo97y%2FTripMatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leedo97y%2FTripMatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leedo97y%2FTripMatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leedo97y","download_url":"https://codeload.github.com/leedo97y/TripMatch/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leedo97y%2FTripMatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31530641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eslint","prettier","react","redux-toolkit","rtk-query","styled-components","toast-ui","typescript","yarn"],"created_at":"2025-04-30T11:16:50.680Z","updated_at":"2026-04-07T21:31:51.274Z","avatar_url":"https://github.com/leedo97y.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trip Match\n\n- 믿을 수 있는 여행 동행자를 구하는 사이트\n- [링크](kdt-sw3-team08.elicecoding.com)\n\n## 서비스 구성 안내\n\n## 1. 서비스 소개\n\n- 기술 스택\n  ![img](https://res.cloudinary.com/dnow6qfd8/image/upload/v1672301273/2022-12-29_17_03_48_eadleu.png)\n  - rtk query: redux를 이미 사용하고 있었지만, 이미 작성한 데이터 패치 로직을 분리하고 단순화하고 axios intercepter를 적용하기 위해 rtk query의 기존 fetchBaseQuery를 axiosBaseQuery로 커스텀.\n  - bcrypt: 회원 비밀번호를 암호화해서 DB에 보관하기 위해 사용.\n  - nanoid: MongoDB CRUD에 _id 대신 사용하고, 이메일 인증번호 및 임시 비밀번호를 발급하기 위해 사용.\n  - request: 공공데이터포털의 open API를 요청하기 위해 사용.\n  - yamljs: 스웨거 API 문서를 작성한 .yaml 파일을 불러오기 위해 사용.\n\n- [공공데이터포탈 open API](https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15101578)\n\n## 2. 서비스 주요 기능 설명\n\n- 주요 기능 및 서브 기능 소개\n  - 유저 관련 기능\n    - 로그인\n      - 비밀번호 찾기\n    - 회원가입(필수 값 * 표시)\n      - 이메일 인증 및 인증번호 확인* (이메일 형식 검증)\n      - 닉네임* (중복 가능) (2자 이상 / 8자 이내 / 특문 제외)\n      - 비밀번호* (8자 이상 / 영어, 숫자, 특문 포함)\n      - 성별*, 나이*\n      - 자기소개 (100자 이내)\n    - 마이페이지\n      - 유저의 동행 횟수, 점수 조회\n      - 유저 정보 수정\n        - 프로필 사진, 비밀번호, 나이, 자기소개 수정 가능\n        - 이메일,닉네임,성별 수정 불가 \n      - 작성 게시글 내역 조회\n        - 모집중, 모집 마감 수정\n        - 제목, 지역, 기간, 모집상태 조회\n      - 댓글 단 게시글 내역 조회\n      - 신청 받은 내역 조회\n        - 수락, 거절\n      - 신청한 내역 조회\n        - 신청 상태(대기중, 거절, 수락) 조회\n        - 대기중 시 신청 취소 가능\n        - 수락 시 연락 수단 조회 가능\n          - 수락 후 여행 기간이 끝난 뒤에 7일 이내 리뷰 작성\n          - 모달을 통해 동행자에 대한 별점을 남길 수 있음\n  - 위시리스트\n    - 좋아요 누른 글 조회\n    - 좋아요 누른 글 개수 조회\n    - 좋아요 취소\n  - 자유게시판 (자유로운 질문 및 후기 게시판)\n    - 지역별 자유게시판 게시글 조회\n      - 전체, 지역별 조회\n    - 게시글 작성\n      - 지역 및 카테고리 설정 \n      - 게시글 제목 및 내용 작성\n    - 게시글 상세 조회\n      - 모달을 통해 작성자 상세 정보 조회\n      - 댓글 작성, 수정, 삭제 가능\n    - 게시글 수정 및 삭제 \n    - 관리자 - 게시글, 댓글 삭제\n  - 동행 게시판 (동행 모집 글 게시판)\n    - 지역별 게시글 전체 조회\n      - 지역별, 모집 상태별 조회\n      - 희망(위시 리스트) 모집글 표시\n    - 게시글 작성\n      - 지역, 모집 인원, 여행 기간, 희망 성별 및 나이대, 관련 사진 입력 가능\n    - 게시글 상세 조회\n      - 모달을 통해 작성자 상세 정보 조회\n      - 동행 신청\n      - 댓글 작성, 수정, 삭제 가능\n    - 게시글 수정 및 삭제\n    - 관리자 - 게시글, 댓글 삭제\n  - 관광 정보 페이지\n    - 축제 정보 목록 조회\n      - 축제 클릭 시 모달을 통해 상세 정보 조회\n    - 숙박 정보 목록 조회\n      - 숙소 클릭 시 모달을 통해 상세 정보 조회\n  - 관리자 페이지\n    - 회원 전체 목록 조회\n      - 회원 클릭 시 모달을 통해 상세 정보 조회\n    - 닉네임으로 회원 검색\n    - 회원 강제 탈퇴\n      - 탈퇴된 회원의 게시글 및 댓글은 그대로 남고, 회원 정보에 ‘탈퇴한 회원입니다’ 표기\n\n\n- 프로젝트만의 차별점, 기대 효과\n  1. 여행 후 상대의 여행 점수를 평가하여 동행자 점수를 채점, 동행자 구인 시 신뢰도 향상\n  2. 서로 동행 신청 동의 시, 글 작성 시 작성한 연락 수단을 공개하여 추가적인 정보 교환이 가능하도록 함\n\n## 3. 서비스 구성도\n\n- 피그마 [링크](https://www.figma.com/file/4bLsUoLZ1HW0FUGzgelvmP/figma-flowchart?node-id=0%3A1)\n- API 명세 [링크](https://kdt-gitlab.elice.io/sw_track/class_03/web_project_2/team8/team82/-/wikis/API-%EB%AA%85%EC%84%B8)\n\n## 4. 프로젝트 팀원 역할 분담\n\n| 이름   | 담당 업무            |\n| ------ | -------------------- |\n| 김제원 | 팀장/프론트엔드 개발 |\n| 김은채 | 프론트엔드 개발      |\n| 김지윤 | 프론트엔드 개발      |\n| 이도연 | 프론트엔드 개발      |\n| 정지영 | 프론트엔드 개발      |\n| 김지택 | 백엔드 개발          |\n\n  - 김제원: 팀장/프론트엔드 담당\n    - 기획 단계: 구체적인 설계와 지표에 따른 프로젝트 제안서 작성\n    - 개발 단계: 프로젝트 일정관리, 의견 조율 및 위시 리스트와 유저 인증, 정보 수정 관련 페이지 완성\n    - 수정 단계: 기획, 스크럼 진행, 코치님 피드백 반영해서 수정, 발표 준비\n  - 김은채: 프론트엔드 담당\n    - 기획 단계: 구체적인 설계와 지표에 따른 프로젝트 제안서 작성\n    - 개발 단계: 피그마를 기반으로 프론트 개발\n    - 수정 단계: 기획, 스크럼 진행, 코치님 피드백 반영해서 수정, 발표 준비\n  - 김지윤: 프론트엔드 담당\n    - 기획 단계: 구체적인 설계와 지표에 따른 프로젝트 제안서 작성\n    - 개발 단계: 메인, 여행정보, 관리자, 검색, 별점 모달, 헤더\u0026푸터 완성\n    - 수정 단계: 기획, 스크럼 진행, 코치님 피드백 반영해서 수정, 발표 준비\n  - 이도연: 프론트엔드 담당\n    - 기획 단계: 구체적인 설계와 지표에 따른 프로젝트 제안서 작성\n    - 개발 단계: 내가 쓴 게시글 내역, 댓글 내역, 신청 받은 내역, 신청한 내역 완성\n    - 수정 단계: 기획, 스크럼 진행, 코치님 피드백 반영해서 수정, 발표 준비\n  - 정지영: 프론트엔드 담당\n    - 기획 단계: 구체적인 설계와 지표에 따른 프로젝트 제안서 작성\n    - 개발 단계: 자유게시글 상세, 작성, 동행게시글 상세, 댓글, 공지사항, 기본 모달 완성, RTK query 적용\n    - 수정 단계: 기획, 스크럼 진행, 코치님 피드백 반영해서 수정, 발표 준비\n  - 김지택: 백엔드 담당\n    - 기획 단계: API 명세 작성\n    - 개발 단계: 피그마를 기반으로 API 완성\n    - 수정 단계: 피드백 반영해서 백엔드 설계 수정, 발표 준비\n\n## 5. 폴더 구조\n```\n├── client\n|   ├── public\n|   └── src\n|       ├── axios\n|       ├── components\n|       |   ├── AppButton\n|       |   ├── AppInputDateRange\n|       |   ├── AppInputFile\n|       |   ├── AppInputRadioCheck\n|       |   ├── AppInputText\n|       |   ├── AppSelect\n|       |   ├── AppTabContent\n|       |   ├── AppTable\n|       |   ├── AppTapPanel\n|       |   ├── Auth\n|       |   ├── Comment\n|       |   ├── CommentList\n|       |   ├── Editor\n|       |   ├── FestivalList\n|       |   ├── FreePost\n|       |   ├── FreePostPreview\n|       |   ├── Layout\n|       |   ├── MakeMatchPostList\n|       |   ├── MarkdownView\n|       |   ├── Modal\n|       |   ├── MyFooter\n|       |   ├── MyHeader\n|       |   ├── NotFound\n|       |   ├── Pagination\n|       |   ├── PostDetail\n|       |   ├── ProfileModal\n|       |   ├── Title\n|       |   └── UserProfile\n|       ├── images\n|       ├── pages\n|       |   ├── Admin\n|       |   ├── FindPassword\n|       |   |   └── components\n|       |   ├── FreePostDetail\n|       |   ├── FreePostList\n|       |   ├── FreePostWrite\n|       |   |   └── components\n|       |   ├── Home\n|       |   |   └── components\n|       |   ├── Login\n|       |   |   └── components\n|       |   ├── MatchPostDetail\n|       |   |   └── components\n|       |   ├── MatchPostList\n|       |   ├── MatchPostWrite\n|       |   ├── MyComment\n|       |   ├── MyEnroll\n|       |   ├── MyPage\n|       |   |   └── components\n|       |   ├── NoticeDetail\n|       |   ├── NoticeList\n|       |   ├── NoticeWrite\n|       |   |   └── components\n|       |   ├── ReceivedEnroll\n|       |   ├── Register\n|       |   |   └── components\n|       |   ├── Search\n|       |   └── WishList\n|       |       └── components\n|       ├── slice\n|       ├── store\n|       ├── styles\n|       ├── type\n|       └── util\n└── server\n    └── src\n        ├── controllers\n        |   ├── admin\n        |   └── main\n        ├── interfaces\n        ├── middlewares\n        ├── models\n        |   └── schemas\n        ├── services\n        ├── swagger\n        ├── types\n        |   └── express\n        └── utils\n```\n\n## 6. 실행 방법\n\n- 스웨거:\n  1. localhost\n    ```\n      git clone https://kdt-gitlab.elice.io/sw_track/class_03/web_project_2/team8/team82.git\n      cd team82/server\n      npm install\n      npm run dev 혹은 npm run start\n      브라우저에서 localhost:3003/api-docs 접속\n      Swagger 문서에서 API 선택하여 Try it out\n      Request 양식 채워서 Execute\n    ```\n  2. server\n    ```\n      브라우저에서 kdt-sw3-team08.elicecoding.com:3003/api-docs 접속\n      Swagger 문서의 Servers 탭을 http://34.64.156.80:3003/api로 변경\n      API 선택하여 Try it out\n      Request 양식 채워서 Execute\n    ```\n\n## 7. 버전\n\n- 프로젝트의 버전 1.0.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleedo97y%2Ftripmatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleedo97y%2Ftripmatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleedo97y%2Ftripmatch/lists"}