2024.01.10 - [Spring/[Project] 눈치우기 봉사활동 매칭 플랫폼] - 서비스 소개 & 기능 정리
서비스 소개 & 기능 정리
눈 치우기 봉사활동 매칭 플랫폼!! ❄️ SnowCare ❄️ ☃️서비스 소개 ❄️SnowCare❄️ 는 눈 치우기 봉사활동 매칭 서비스를 제공하는 웹앱 형태의 어플리케이션 입니다 😊 자신의 지역에서, 이
alsrudalsrudalsrud.tistory.com
☃️ ERD
회원 관리
→ User Entity
봉사활동 구인 매칭
→ Volunteer Entity
→ CommentVolunteer Entity
→ LikeVolunteer Entity
커뮤니티
→ CommunityArticle Entity
→ CommentCommunityArticle Entity
→ LikeCommunityArticle Entity
나의 봉사활동 기록
→ UserVolunteerPost Entity
☃️ API 명세서
회원 관리
기능 | HTTP Method | End Point | Header | Request Body | Response Body |
카카오 로그인 | POST | /auth/kakao | Content-Type: application/json | { ”authorizationCode”: text } | { "accessToken": text, "refreshToken": text, ”userId”: int, ”newUser”: boolean } |
로그아웃 | POST | /auth/kakao/logout | Content-Type: application/json | { ”accessToken”: text } | |
닉네임 중복 확인 | GET | /users/nickname/{nickname} | |||
닉네임 변경 | PATCH | /users/nickname-edit?userId=1&nickname= | Authorization: Bearer AccessToken | ||
access token 재발급 | POST | /auth/refresh-token | Content-Type: application/json | { ”refreshToken”: text } | { "accessToken": text } |
설정 수정 | PATCH | /users/setting | Authorization: Bearer AccessToken Content-Type: multipart/form-data; |
{ ”userId” : bigint, ”region” : string, ”latitude”: double, ”longitude”: double, ”newVolunteerAlarm”: boolean, ”weatherAlarm” : boolean } |
메인 페이지
기능 | HTTP Method | End Point | Header | Request Body | Response Body |
봉사활동 구인글 최신 3개 조회 | GET | /volunteers/recent?userId=1 | [ { "volunteerId": bigint, "userNickname": string, "userImage": string, "title": string, "content": string, "image": string, "place": string, "createdDate": datetime, "likeCount": int, "userLiked": boolean, "comments": [ { "commentId": bigint, "userNickname": string, "content": string, "createdDate": datetime } ], ... } ] |
봉사활동 구인 매칭 페이지
기능 | HTTP Method | End Point | Header | Request Body | Response Body |
글 목록 조회 | GET | /volunteers?userId=1 | [ { "volunteerId": bigint, "userNickname": string, "userImage": string, "title": string, "content": string, "image": string, "place": string, "createdDate": datetime, "likeCount": int, "userLiked": boolean, "comments": [ { "commentId": bigint, "userNickname": string, "content": string, "createdDate": datetime }, ... ] }, ... ] |
||
글 상세 조회 | GET | /volunteers/{volunteerId}?userId=1 | Authorization: Bearer AccessToken | { “userNickname” : string, “userImage” : string, “volunteerId” : bigint, “title” : string, “content” : string, “image” : string, “place” : string, “createdDate” : datetime, “likeCount” : int, “userLiked”: boolean, “comments” : [ { “commentId” : bigint, “userNickname” : string, “content” : string, “createdDate” : datetime }, ... ] } |
|
글 작성 | POST | /volunteers/new | Authorization: Bearer AccessToken Content-Type: multipart/form-data; |
{ “userId” : bigint, “title” : string, “content” : string, “place” : string, “image” : MultipartFile } |
{ “volunteerId” : bigint } |
글 삭제 | DELETE | /volunteers/delete/{volunteerId} | Authorization: Bearer AccessToken | ||
좋아요 추가 | POST | likes/volunteer?userId=1&volunteerId=1 | Authorization: Bearer AccessToken | ||
좋아요 삭제 | DELETE | likes/volunteer/del?userId=1&volunteerId=1 | Authorization: Bearer AccessToken | ||
댓글 추가 | POST | comments/volunteer | Authorization: Bearer AccessToken Content-Type: multipart/form-data; |
{ “userId” : bigint, “postId” : bigint, “content” : text } |
|
댓글 삭제 | DELETE | comments/volunteer/delete/{commentVolunteerId} | Authorization: Bearer AccessToken |
커뮤니티 페이지
기능 | HTTP Method | End Point | Header | Request Body | Response Body |
글 목록 조회 | GET | /community?userId=1 | [ { “userNickname” : string, “userImage” : string, “communityArticleId” : bigint, “title” : string, “content” : string, “image” : string, “createdDate” : datetime, “likeCount” : int, “userLiked”: boolean, “comments” : [ { “commentId”: bigint, “userNickname” : string, “content” : string, “createdDate” : datetime }, … ] }, ... ] |
||
글 상세 조회 | GET | /community/{communityArticleId}?userId=1 | Authorization: Bearer AccessToken | { “userNickname” : string, “userImage” : string, “communityArticleId” : bigint, “title” : string, “content” : string, “image” : string, “createdDate” : datetime, “likeCount” : int, “userLiked”: boolean, “comments” : [ { “commentId”: bigint, “userNickname” : string, “content” : string, “createdDate” : datetime }, … ] } |
|
글 작성 | POST | /community/new | Authorization: Bearer AccessToken Content-Type: multipart/form-data; |
{ “userId”: bigint, “title” : string, “content” : string, “image” : MultipartFile } |
{ “communityArticleId” : bigint } |
글 수정 | PATCH | /community/edit/{communityArticleId} | Authorization: Bearer AccessToken Content-Type: multipart/form-data; |
{ “userId”: bigint, “title” : string, “content” : string, “image” : MultipartFile } |
|
글 삭제 | DELETE | /community/delete/{communityArticleId} | Authorization: Bearer AccessToken | ||
좋아요 추가 | POST | /likes/community?communityArticleId=1&userId=1 | Authorization: Bearer AccessToken | ||
좋아요 삭제 | DELETE | /likes/community/del?communityArticleId=1&userId=1 | Authorization: Bearer AccessToken | ||
댓글 추가 | POST | /comments/community | Authorization: Bearer AccessToken Content-Type: multipart/form-data; |
{ “userId” : bigint, “postId” : bigint, “content” : text } |
|
댓글 삭제 | DELETE | /comments/community/delete/{communityArticleId} | Authorization: Bearer AccessToken |
마이페이지
기능 | HTTP Method | End Point | Header | Request Body | Response Body |
좋아요한 봉사활동 구인글 조회 | GET | /likes/volunteer/{userId} | Authorization: Bearer AccessToken | [ { "volunteerId": bigint, "userNickname": string, "userImage": string, "title": string, "content": string, "image": string, "place": string, "createdDate": datetime, ”likeCount”: int, ”userLiked”: boolean }, ... ] |
|
좋아요한 커뮤니티 글 조회 | GET | /likes/community/{userId} | Authorization: Bearer AccessToken | [ { "communityArticleId": bigint, "userNickname": string, "userImage": string, "createdDate": datetime, "title": string, "content": string, "image": string, ”likeCount”: int, ”userLiked”: boolean }, ... ] |
|
나의 봉사활동 기록글 목록 조회 | GET | /users/record?userId=1 | Authorization: Bearer AccessToken | [ { “userVolunteerPostId” : bigint, “title” : string, “content” : string, “image” : MultiPartFile, “userVolunteerDate” : datetime }, ... ] |
|
나의 봉사활동 기록글 상세 조회 | GET | /users/record/{userVolunteerPostId}?userId=1 | Authorization: Bearer AccessToken | { “userVolunteerPostId” : bigint, “title” : string, “content” : string, “image” : MultiPartFile, “userVolunteerDate” : datetime } |
|
나의 봉사활동 기록글 작성 | POST | /users/record/new | Authorization: Bearer AccessToken | { “userVolunteerPostId” : bigint } | |
회원정보 조회 | GET | /users/{userId} | Authorization: Bearer AccessToken | { ”userId”: bigint, ”nickname”: string, ”email” : string, ”profileImage”: string, ”region” : string, ”weatherAlarm” : boolean, ”newVolunteerAlarm” : boolean } |
|
설정 수정 | PATCH | /users/setting | Authorization: Bearer AccessToken | { ”userId” : bigint, ”region” : string, "latitude": double, "longitude": double, ”newVolunteerAlarm”: boolean, ”weatherAlarm” : boolean } |
|
프로필 이미지 수정 | PATCH | /users/profile-image | Authorization: Bearer AccessToken | { ”image”: MultiPartFile } |
'Spring > [P] 눈치우기 봉사활동 매칭 플랫폼' 카테고리의 다른 글
게시글 상세 조회하기 (0) | 2024.02.13 |
---|---|
게시글 전체 조회하기 (0) | 2024.02.12 |
[Git/Github] Issue - Branch - PR 만들기 (0) | 2024.01.22 |
[Git/Github] Github Repository 랑 IntelliJ 연동하기 : SSH Key (0) | 2024.01.18 |
서비스 소개 & 기능 정리 (0) | 2024.01.10 |