Skip to content

yms1789/petmily

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐕 펫밀리(PETMILY) :: 반려동물과 함께하는 SNS & CURATION SERVICE

petmily

📢 프로젝트 진행 기간


  • SSAFY 9기 2학기 공통프로젝트 구미 2반 D209

  • 23.07.04 ~ 23.08.18 (총 7주)


📢 프로젝트 펫밀리 개요


- 펫팸족에 대해서 아시나요?

펫팸족이란, 반려동물을 가족처럼 여기는 가구가 늘어나면서 생긴 신조어입니다. 여러 SNS가 넘쳐나는 요즘, 반려동물만을 위한 SNS가 있으면 좋겠다는 생각 해보신적 없으신가요?

- 펫밀리(PETMILY)

펫밀리는 '펫'과 '패밀리'를 조합한 단어입니다. 반려동물을 키우는 인구가 꾸준히 늘어나고 있는 현재, 저희 펫밀리는 반려인들을 위한 SNS 서비스를 웹과 앱으로 제공합니다. 물론 반려동물을 키우지 않아도 괜찮아요! 남의 귀여운 반려동물을 펫밀리와 함께 덕질 해보자구요!!

- 반려동물의, 반려동물을 위한, 반려동물을 키우는 사람들에 의한

펫밀리는 SNS 기능 뿐만 아니라, 반려동물들을 위한 다양한 정보도 기사를 통해 제공합니다.


📢 주요 기능


  • 큐레이션 (Curation)

    • 하루에 한 번, 반려동물과 관련한 기사를 새롭게 제공합니다.

    • 강아지, 고양이, 기타 동물로 대분류가 되어있으며 건강, 미용, 식품, 입양으로 소분류 되어있습니다.

  • 최저가 정보

    • 네이버 쇼핑 API를 통해 반려동물과 관련된 물품의 최저가 정보를 제공합니다.

    • 강아지, 고양이, 기타 동물로 대분류가 되어있으며 식품, 미용, 건강으로 소분류 되어있습니다.

  • SNS (Social Network Service)

    • SNS 기능을 통해 반려동물을 마음껏 자랑해보세요!

    • 게시글 및 댓글을 통해 다른 유저들과 소통이 가능합니다.

    • 유저간 팔로우도 가능하며, 사용자가 팔로우하지 않은 대상들을 팔로우할 수 있도록 추천해드립니다.

    • 1대 1 채팅을 통해 유저간 유대관계 형성도 할 수 있습니다.

  • 포인트 제도

    • 포인트를 모아 상점기능을 이용해보시는건 어떠세요?

    • 하루 한번 출석, 강아지 산책 그리고 게시글 작성을 통해 포인트를 모을 수 있습니다.

    • 모은 포인트는 상점의 뽑기를 통해 다양한 아이템을 뽑을 수 있습니다.

  • 강아지 산책 (모바일)

    • 우리집 강아지 오늘은 얼마나 산책했는지 궁금하지 않으신가요?

    • 모바일에서는 강아지 산책 거리를 측정하는 기능을 제공합니다.

    • 산책 거리에 비례하여 포인트를 지급합니다.


📢 주요 기술


BackEnd

Eclipse IDE

spring springboot SpringSecurity swagger

- IntelliJ IDE
- JAVA JDK 17
- Springboot 3.1.1
- Spring Data JPA
- Spring Security
- Spring oAuth
- Spring Starter Mail
- Swagger
- WebSocket
- STOMP
- Firebase

FrontEnd

- Visual Studio Code IDE
- React 18.2.0
- Webpack
- Babel
- npm
- ESLint, Prettier
- tailwind CSS
- React Router
- axios
- Recoil
- SockJS
- STOMP

Mobile

Android Studio Jetpack Compose Firebase

- Android Studio
- Jetpack
    - Coroutine
    - ViewModel
    - LiveData
    - Retrofit
    - WorkManager
- FCM
- WebSocket
    - Stomp

CI/CD

aws amazons3 jenkins docker nginx

- AWS EC2
- Jenkins
- NGINX
- DOCKER

📢 프로젝트 파일 구조


BackEnd

├─main
│   └─java.com.pjt.petmily
│       ├─domain
│       │  ├─chat
│       │  ├─curation
│       │  ├─noti
│       │  ├─oauth
│       │  ├─pet
│       │  │  └─walk
│       │  ├─product
│       │  ├─shop
│       │  ├─sns
│       │  │  ├─board
│       │  │  │  ├─hashtag
│       │  │  │  └─photo
│       │  │  ├─comment
│       │  │  └─heart
│       │  └─user
│       │      └─follow
│       └─global
│           ├─awss3
│           ├─config
│           ├─FCM
│           ├─jwt
│           └─scheduler
└─ resources

FrontEnd

├─petmily
│   └─public
│   └─src
│      ├─components
│      │   ├─commons
│      │   │  ├─CustomSelect.jsx
│      │   │  ├─PortalPopup.jsx
│      │   │  ├─SearchBar.jsx
│      │   │  └─UploadImage.jsx
│      │   ├─curation
│      │   │  └─RenderCuration.jsx
│      │   ├─header
│      │   │  ├─Alarm.jsx
│      │   │  └─Header.jsx
│      │   ├─mypage
│      │   │  ├─MypageController.jsx
│      │   │  ├─MyPetDetail.jsx
│      │   │  ├─MyPetInfo.jsx
│      │   │  ├─RenderBookmarks.jsx
│      │   │  └─RenderPosts.jsx
│      │   ├─products
│      │   │  ├─ProductCarousel.jsx
│      │   │  └─RenderProducts.jsx
│      │   ├─shop
│      │   │  ├─GachaComponent.jsx
│      │   │  ├─GachaLoadingModal.jsx
│      │   │  ├─GachaModal.jsx
│      │   │  ├─Inventory.jsx
│      │   │  └─PointLog.jsx
│      │   ├─social
│      │   │  ├─Chat.jsx
│      │   │  ├─ChatMessage.jsx
│      │   │  ├─ChatRoom.jsx
│      │   │  ├─DeleteComfirmation.jsx
│      │   │  ├─FollowRecommend.jsx
│      │   │  ├─SocialComment.jsx
│      │   │  ├─SocialCommentInput.jsx
│      │   │  ├─SocialFeed.jsx
│      │   │  └─SocialPost.jsx
│      │   └─user
│      │      ├─LoginGoogle.jsx
│      │      ├─LoginKakao.jsx
│      │      ├─LoginKakaoCallback.jsx
│      │      ├─LoginNaver.jsx
│      │      └─PasswordResetModal.jsx
│      ├─pages
│      │   ├─curation
│      │   │  ├─Curation.jsx
│      │   │  ├─CurationCategory.jsx
│      │   │  └─CurationPet.jsx
│      │   ├─products
│      │   │  ├─Products.jsx
│      │   │  ├─ProductCategory.jsx
│      │   │  └─ProductPet.jsx
│      │   ├─social
│      │   │  └─Social.jsx
│      │   └─user
│      │      ├─Customshop.jsx
│      │      ├─Join.jsx
│      │      ├─Login.jsx
│      │      ├─Mypage.jsx
│      │      ├─PetInfo.jsx
│      │      └─UserInfo.jsx
│      ├─states
│      ├─static
│      │   ├─animations
│      │   └─images
│      └─utils
└─ resources

Mobile

├─java
│  └─com
│      └─petmily
│          ├─config
│          ├─presentation
│          │  ├─view
│          │  │  ├─board
│          │  │  ├─certification
│          │  │  │  ├─join
│          │  │  │  ├─login
│          │  │  │  └─password
│          │  │  ├─chat
│          │  │  ├─curation
│          │  │  ├─dialog
│          │  │  ├─gallery
│          │  │  ├─home
│          │  │  ├─info
│          │  │  │  ├─pet
│          │  │  │  └─user
│          │  │  ├─mypage
│          │  │  ├─notification
│          │  │  ├─search
│          │  │  ├─splash
│          │  │  ├─store
│          │  │  └─walk
│          │  └─viewmodel
│          ├─repository
│          │  ├─api
│          │  │  ├─board
│          │  │  ├─certification
│          │  │  │  ├─join
│          │  │  │  ├─login
│          │  │  │  └─password
│          │  │  ├─chat
│          │  │  ├─curation
│          │  │  ├─infoInput
│          │  │  │  ├─pet
│          │  │  │  └─user
│          │  │  ├─mypage
│          │  │  ├─notification
│          │  │  ├─shop
│          │  │  ├─token
│          │  │  └─walk
│          │  └─dto
│          └─util
└─res
    ├─anim
    ├─color
    ├─drawable
    ├─drawable-v24
    ├─font
    ├─layout
    ├─menu
    ├─mipmap-anydpi-v26
    ├─mipmap-hdpi
    ├─mipmap-mdpi
    ├─mipmap-xhdpi
    ├─mipmap-xxhdpi
    ├─mipmap-xxxhdpi
    ├─raw
    ├─values
    ├─values-night
    ├─values-v26
    └─xml

📢 프로젝트 산출물


프로젝트 관리




📢 프로젝트 빌드



📢 팀원 소개


여민수 강해빈 손민균 정용우 조혜진 하동혁
팀장, FE 팀원, FE 팀원, BE 팀원, MOBILE 팀원, BE 팀원, MOBILE