Skip to content

JaeHyunPyun/web2-3-pawever

 
 

Repository files navigation

Project : PAWEVER

프로그래머스 데브코스 2기 - 최종 프로젝트 Team10
개발기간: 2025.2.10 - 2025.3.12

image

📢 배포 주소

PAWEVER 배포 버전 : PAWEVER

  • 소셜 로그인(Google/Kakao) 후 사용 가능

🎀 프로젝트 소개

  • 유기동물 입양 문화 확산과 인식 개선을 목표로, 입양 희망자와 보호소를 효과적으로 연결하는 플랫폼 서비스를 기획하였습니다.
  • 전국 각지에 분산된 유기동물 보호소 정보를 통합 제공하고, 유기 동물 매칭 및 후원 등 편의 기능을 지원하여 입양 과정의 접근성과 편리성을 높였습니다.
  • 입양 희망자뿐만 아니라 반려동물에 관심 있는 모든 사용자가 정보와 경험을 자유롭게 공유할 수 있는 커뮤니티를 구성하여, 유기동물 입양 활성화를 위한 참여 기반을 마련하였습니다.

👐 개발팀 구성

Front-End

안효태 임승현 우정완 윤정인
PO(Project Owner) 팀장 팀원 팀원
아키텍처 및 기술 스택 선정,
소셜로그인,
입양동물찾기,
필터링,
후원 ,
유저페이지 ,
좋아요 ,
동물카드 제작
로그인 모달,
애니멀보드 페이지,
홈화면 퍼블리싱,
매칭페이지 기능 구현
사이트 디자인/퍼블리싱,
Header, Sidebar, Footer,
공용 컴포넌트 제작 ,
모바일 환경 퍼블리싱 ,
동물 상세 페이지
카드 컴포넌트,
매칭페이지,
마이페이지 퍼블리싱,
커뮤니티 페이지 기능

Back-End

남주연 강바다 김민영 편재현 황규리
팀장 팀원 팀원 팀원 팀원
클라우드 인프라 및 CI/CD 구축,
후원&결제 API 개발,
AWS 관리
Open API 및 KakaoMap API 데이터 처리,
유기동물 API 개발,
커뮤니티 게시글 API 개발
보호소 방문 예약 및
예약 조회 API 개발
클라우드 인프라 및 CI//CD 구축,
회원 인증/인가 API 개발,
CORS 설정,
회원정보 조회 및 수정 API 개발
품종 매칭 및 지리 기반 추천 API 개발,
유기동물 좋아요 API 개발,
커뮤니티 댓글 API 개발

🛠️ 기술스택

✨ Front-End ✨

Framework/Library

State Management

Build & Package Management

API & Networking

Animations & UI


✨ Back-End ✨

Framework

Infrastructure/Cloud


Database/Cache


✨ Communication ✨



🛠️ 화면구성

페이지명 주요 기능 화면
메인
페이지
입양동물 매칭,
후원하기,
보호중인 동물 ,
근처 동물
입양동물찾기
페이지
보호중인동물,
보호동물 상세페이지,
조건 검색
커뮤니티
페이지
게시글 작성,
댓글 작성,
게시글 검색
후원
페이지
후원 정보 입력,
후원 결제
마이
페이지
프로필 수정,
좋아요 동물 조회,
작성글 조회,
후원내역 조회
매칭
페이지
매칭 동물 선택,
질문 페이지,
매칭 결과 페이지

📦 주요 기능

입양 동물 매칭

  • 사용자의 라이프스타일과 선호도를 반영한 간단한 매칭 테스트를 통해, 성향이 잘 맞는 강아지 또는 고양이를 추천하여 입양 성공률을 높임
  • 사용자가 라이프스타일 관련 질문에 응답하면, 해당 응답을 기반으로 반려동물 선호 특성을 도출하고, 이를 보호 중인 동물의 특성과 비교하여 매칭 점수를 산출

위치 기반 근처 동물 추천

  • 사용자 위치 정보를 기반으로, 가까운 보호소에서 보호 중인 동물을 노출
  • Haversine 알고리즘을 활용해 지구 곡률을 고려한 정확한 거리 계산을 수행하고, 사용자 주변 보호소 내 추천 품종과 유사한 유기동물을 찾아 제안

후원, 결제

  • TossPayments API를 활용하여 간편하고 안전한 결제 시스템을 구축, 후원을 희망하는 사용자가 쉽고 편리하게 후원할 수 있도록 지원
  • 카드 결제 및 계좌 이체를 통한 후원 기능 제공

보호소 정보 조회

  • 보호소에서 보호 중인 동물 목록 조회 및 보호소 연락처, 위치 정보 제공
  • 카카오맵 API를 활용해 보호소의 위도·경도 데이터를 불러와 보호소 정보와 매핑
  • 비동기 호출 및 스케줄러를 도입하여 보호소 데이터를 매일 자동 업데이트

조건 기반 필터 검색

  • 축종, 성별, 나이, 검색어 입력을 통해 사용자가 원하는 조건의 동물을 쉽고 빠르게 검색할 수 있도록 지원
  • JPA Specification을 활용해 품종, 지역, 보호소 ID, 성별, 나이, 검색어 등 다양한 필터링 조건 구현

커뮤니티

  • 사용자가 입양 동물 및 보호소 관련 정보나 경험을 게시글로 자유롭게 공유하고, 댓글을 통해 소통할 수 있도록 하여 유기동물 입양 커뮤니티 활성화
  • 게시글 이미지 업로드 시 Multipart를 활용하고, S3Client를 이용해 AWS S3에 파일 업로드 및 삭제 처리

소셜 로그인

  • OAuth 2.0 및 JWT를 이용한 소셜 로그인(구글, 카카오) 기능 구현
  • 토큰 탈취 감지 시 모든 기기에서 자동 로그아웃 처리 기능 제공
  • 사용자가 최근 접속 IP와 다른 IP로 로그인할 경우 보안 알림 메일 자동 전송 기능 구현

마이 페이지

  • 사용자 프로필 이미지, 이름, 소개글 등 개인정보 수정 기능 제공
  • 사용자가 좋아요 표시한 입양 동물, 작성한 게시글, 후원 내역 조회 기능 제공

🏗️ 아키텍처

Infrastructure

image

Project Structure

외부 라이브러리, 인증, 인프라, 공통 엔티티 등은 common 패키지로 통합 관리하고, 핵심 도메인 비즈니스 로직은 domain 패키지 내부에서 독립적으로 구성

src/main/java/com/pawever/server/
├── common/
│   ├── config/            # 전역 설정
│   ├── entity/            # 공통 엔티티
│   ├── exception/         # 커스텀 에외 등록
│   ├── handler/           # 예외 처리
│   ├── infra/             # 외부 의존성 추가
│   └── response/          # API 공통 응답 형식
├── domain/
│   ├── carehub/           # 유기동물, 보호소 데이터 조회
│   ├── community/         # 댓글 기능
│   ├── donation/          # 후원, 결제
│   ├── likedpet/          # 좋아요
│   ├── post/              # 게시글 기능
│   ├── recommendation/    # 추천, 매칭
│   ├── reservation/       # 보호소 예약
│   └── user/              # 사용자 인증, 인가, 정보 조회
└── PawEverApplication.java

ERD

image

About

PAWEVER - 유기동물과 입양희망자를 연결하는 입양 통합 플랫폼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 91.2%
  • HTML 7.7%
  • Other 1.1%