Search
Duplicate

행복하시죠?

Table
Search
Team
이름
태그
MBTI
블로그 주소
Github주소
한마디!
부리더
ENTP
영규 기절..!

Github

시연 영상

발표 자료

1. 프로젝트

프로젝트 명 : AirDnS(Air Desk And Study)
소개
한줄 소개 : 개인 공부방을 시간로 단위 대여 해주는 서비스입니다.
내용
등록하는 사람이 스터디 룸 등록합니다.
위치와 카테고리를 통한 장비에 관한 내용과 사진도 추가적으로 등록합니다.
사용자는 원하는 분류를 통해 스터디 룸 목록을 볼수 있습니다.
장비 관련된 분류를 제공합니다.
등록자는 등록 하면서 해당 방에 대한 시간당 이용시간을 표기해야합니다.
사용자는 원하는 방을 예약 가능한 시간에 예약 할 수 있습니다.
예약 이후 결제 시스템을 통해 결제를 진행합니다.
리뷰를 통해 후기를 남길 수 있다.

2. 기획 관련 메모

이슈 관리
아이디어 기획
튜터님께 질문 사항
중간발표 자료
고객 피드백 타임라인

3. WBS & Tasks

김종규
김영규
임상훈
박지환
조예린
기술적 멘토링 사전 노트

비용 청구서

Register 비용은 제외 → 51.47 - 34 = 17.47
1월 : 17.47
2월 : 21.66
총 합계 : $ 39.13

Ground Rules

1. Git PR이전에 Code Review 하기!! - 최소 한 명이상 리뷰 이후 Merge 2. 변경 사항이 있을 시 Git Issue에 추가 후 진행 - Git Issue 추가 이전 슬랙이나 카톡 등으로 보고한다. 3. 바르고 고운말로 소통하기 - ~님자를 붙여서 소통한다. - 욕설 금지, 비방 금지 4. 실시간 문제나 상황 변경 사항 공유 - 슬랙이나 카톡 등을 이용해서 문제가 생겼을 시, 공유한다. 5. 전체적인 컨벤션 꼭꼭꼭 제발 지키기!! - 깃 메세지 컨벤션, 킷 브랜치 명 컨벤션 지키기 - DB나 환경설정을 공유해서 통일 시키기 6. 시간 약속 무조건 지키기!! - 10:00 : 아침 회의 진행 - 13:00 ~ 14:00 : 점심식사 - 18:00 ~ 19:00 : 저녁식사 - 20:00 : 현재 진행상황 보고 및 피드백 7. 집단지성 적극 활용하기 - 어려운 문제나 모르는 문제 직면서 팀원들에게 스스럼 없이 도움 요청하기 8. 팀원들의 사기들 떨어트리는 말 금지
Plain Text
복사

Goals

1. 3주차까지 기능 완벽히 구현하자!!!!
Plain Text
복사

회의

10:00 : 아침 회의 진행 20:00 : 현재 진행상황 보고 및 피드백
Plain Text
복사

Project Rules

개발환경

계획표

Calendar
Search
December 2024
Today
S
M
T
W
T
F
S

SA 서면피드백

## - 프로젝트 주제가 재미있는 주제인것 같아보이네요! 다른 예약 서비스들을 참고해서, 재미있는 기능들을 더 추가해봐도 좋을것 같습니다. - 예샹 사용자, 주요 사용 시간대 등을 생각해 보시면, 해당 서비스의 트래픽규모를 추정해볼 수 있을것 같습니다. - 질문사항 - 사용 유저와 등록 유저를 따로 구분할 필요는 없을것 같습니다. Role 등으로 각자 가능한 권한들을 구분해보면 좋을것 같습니다. - 채팅관련 API 도 명세에 적어보세요 - 작업 분담 - 잘 분리해주셨습니다. User API 가 우선 작업 되어야 다른 API 들 작업이 수월해져서, 먼저 작업하거나 Mock User 정보를 만들어서 작업하시면 좋을것 같습니다. - 일정 계획표에 적어보시고, 중간중간 작업 진행도를 잘 확인해주세요 - GroundRules 에 깃 컨벤션, 브랜치명 예시 등도 있으면 좋을것 같습니다. (git readme 에 적어두셔도 좋을것 같습니다.) - ERD 잘 작성해주셨습니다. 일부 varchar(255) 까지 필요 없는 경우도 있고, 방 상세설명의 경우 그 이상이 될수도 있을것같네요! 서비스 적으로 정책을 구체적으로 세워서 조절하시면 좋을것 같습니다. - 고생하셨습니다!!
Plain Text
복사

4. 와이어프레임

열기

5. API 명세서 (구현 기능 안에 상세 설명 추가)

Search
담당자
진행상황
method
기능
URL
request header
response header
request
response
에러 코드
날짜
시작 전
시작 전
시작 전
POST
/api/v1/users/login
-
Barer jwt token
{ ”socialtype” : “kakao” }
{ ”message” : “로그인 성공”, ”statusCode” : “204” }
400 유효하지 않은 요청 401 로그인 거부
시작 전
DELETE
unlink
Authorization : Bearer jwt token
-
-
{ ”message” : “로그아웃 성공”, ”statusCode” : “204” }
400 유효하지 않은 요청 404 유저가 없음
시작 전
PATCH
/api/v1/users/profile
Authorization : Bearer jwt token
-
{ ”nickname” : “test1”, ”address” : “경기도 어딘시 어딘구 어딘동 100-1” }
[ ”message” : “수정 성공”, ”statusCode” : “204”, ”data” : { ”nickname” : “test1”, ”address” : “경기도 어딘시 어딘구 어딘동 100-1” } ]
400 유효하지 않은 요청 403 권한 없음 404 유저가 없음
시작 전
GET
/api/v1/users/{usersId}/profile
Authorization : Bearer jwt token
-
-
{ ”message” : “회원 프로필 조회 성공”, ”statusCode” : “200”, ”data” : { ”nickname” : “test1”, ”email” : “test1@naver.com”, ”address” : “경기도 어딘시 어딘구 어딘동 100-1” } }
400 유효하지 않은 요청 403 권한 없음 404 유저가 없음
시작 전
PATCH
/api/v1/users/role
Authorization : Bearer jwt token
-
{ ”role”: “USER” }
[ ”message” : “수정 성공”, ”statusCode” : “204”, ”data” : { ”role”: “USER” ]
400 유효하지 않은 요청 403 권한 없음 404 유저가 없음
Search
담당자
진행상황
method
기능
URL
request header
response header
request
response
에러 코드
시작 전
POST
/api/v1/rooms
Auth
{ ”data”:{ ”name” : “앨리스의 방”, ”price” : “6000”, ”address” : “서울특별시 서초구 도곡동 140-5”, ”size” : “2”, ”desc” : “이 방은 넓고 조용하고 커피가 무한 리필입니당!! 얼른 예약하세요”, ”equipment” : [ “1”, “2” ], } ”files” : [ “imageUrl.com”, “imageUrl.com” ] }
{ ”statusCode” : “201”, ”message” : “스터디 룸 등록에 성공했습니다” , ”data”: { ”data”:{ ”name” : “앨리스의 방”, ”price” : “6000”, ”address” : “서울특별시 서초구 도곡동 140-5”, ”size” : “2”, ”desc” : “이 방은 넓고 조용하고 커피가 무한 리필입니당!! 얼른 예약하세요”, ”equipment” : [ “1”, “2” ], } ”files” : [ “imageUrl.com”, “imageUrl.com” ] } }
400 유효하지 않은 요청 403 권한 없음
시작 전
PATCH
/api/v1/rooms/{roomsId}
Auth
{ ”name “ : “수정이후 방이름”, ”price” : “7000”, ”address” : “서울특별시 서초구 도곡동 140-5”, ”size” : “3”, ”desc” : “수정한 내용”, ”equipment”: [1,2,3] }
{ ”statusCode” : “201”, ”message” : “스터디 룸 등록에 성공했습니다” , ”data” : { ”name” : “수정 이후 방이름”, ”price” : “7000”, ”address” : “서울특별시 서초구 도곡동 140-5”, ”size” : “3”, ”desc” : “수정한 내용” } }
400 유효하지 않은 요청 403 권한 없음
시작 전
PATCH
/api/v1/rooms/{roomsId}/updateImages
Auth
{ ”data”: { ”removeImages”: [13,23,224] }, ”files”: $files }
{ ”statusCode” : “200”, ”message” : “이미지 변경에 성공했습니다”, ”data”:{ ”imageUrl”: [”imageUrl.com”, …] } }
400 유효하지 않은 요청 403 권한 없음
시작 전
GET
/api/v1/rooms/{roomsId}
Auth
{ ”statusCode” : “200”, ”message” : “스터디 룸 정보 조회에 성공했습니다”, ”data”: { ”name” : “앨리스의 방”, ”price” : “6000”, ”address” : “서울특별시 서초구 도곡동 140-5”, ”size” : “2”, ”desc” : “이 방은 넓고 조용하고 커피가 무한 리필입니당!! 얼른 예약하세요”, ”equipment” : [ “1”, “2” ], "isClosed”: false, ”image” : [ “imageUrl.com”, “imageUrl.com” ], ”reservatedTimeList”: [[’2021-04-01 08:00:00, 2021-04-01 09:00:00], […]], ”restScheduleList”: [[’2021-04-01 08:00:00, 2021-04-01 09:00:00], […]] } }
400 유효하지 않은 요청 403 권한 없음
시작 전
GET
/api/v1/rooms
{ ”cursor”: 52 ”pageSize: 10, ”keyword”: “앨리스” ”price” : [7000, 50000], ”size” : [3,15], ”equipment”: [1,2,5,10], "latitude”: 33.1232, ”longitude”: 126.5703, ”searchLevel”: 6 }
{ ”statusCode” : “200”, ”message” : “스터디 룸 정보 조회에 성공했습니다”, ”data”: { ”roomsId” : 52, ”name”: “앨리스의 방”, ”price” : “6000”, ”address” : “서울특별시 서초구 도곡동 140-5”, ”size” : 2, ”isClosed”: false, "createdAt”: “2021-05-01 13:24:53”, ”image” : “imageUrl.com”, "latitude”: 33.1232, ”longitude”: 126.5703, ”searchDistance”: 100.0 } }
400 유효하지 않은 요청
시작 전
GET
/api/v1/rooms/host
Auth
{ ”keyword”: “앨리스” }
{ ”statusCode” : “200”, ”message” : “스터디 룸 정보 조회에 성공했습니다”, ”data”: { content[{ ”roomsId” : 52, ”name”: “앨리스의 방”, ”price” : “6000”, ”address” : “서울특별시 서초구 도곡동 140-5”, ”size” : 2, ”isClosed”: false, "createdAt”: “2021-05-01 13:24:53”, ”image” : [“imageUrl.com”, …], ”desc”: "상세하게 설명하자면 좋은 방입니다", equipment: [{options: [{id: 4, name: "선풍기"}, {id: 9, name: "전자렌지"}], …], reservatedTimeList: [[”2021-05-01 13:24:53”, “2021-05-01 13:24:53”], …], restScheduleList: [[”2021-05-01 13:24:53”, “2021-05-01 13:24:53”], …], }, … ], …pageableData }
400 유효하지 않은 요청 403 권한 없음
시작 전
PATCH
/api/v1/rooms/{roomsId}/updateIsClosed
Auth
{ ”statusCode” : “200”, ”message” : “스터디 룸 운영 여부 변경에 성공했습니다” }
400 유효하지 않은 요청 403 권한 없음
시작 전
DELETE
/api/v1/rooms/{roomsId}
Auth
{ ”statusCode” : “200”, ”message” : “스터디 룸 삭제에 성공했습니다” }
400 유효하지 않은 요청 403 권한 없음
시작 전
GET
/api/v1/rooms/{roomsId}/restschedule
Auth
{ ”statusCode” : “200”, ”message” : “휴식 일정 조회에 성공했습니다”, ”data”: { content[{ ”id” : 52, "startTime”: "2024-01-02 04:00:00”, ”endTime”: "2024-01-02 05:00:00” }, … ], …pageableData }
400 유효하지 않은 요청 403 권한 없음
시작 전
POST
/api/v1/rooms/{roomsId}/restschedule
Auth
{ ”startDate” : “2023-10-19”, ”endDate” : “2023-10-19”, }
{ ”statusCode” : “201”, ”message” : “휴식 일정 등록에 성공했습니다” }
400 유효하지 않은 요청 403 권한 없음
시작 전
DELETE
/api/v1/rooms/{roomsId}/restschedule/{restscheduleId}
Auth
{ ”statusCode” : “200”, ”message” : “휴식 일정 삭제에 성공했습니다” }
400 유효하지 않은 요청 403 권한 없음
Search
담당자
진행상황
method
기능
URL
request header
response header
request
response
에러 코드
완료
POST
/api/v1/rooms/{roomsId}/reservation
Authorization : Bearer jwt token
{ "checkInTime" : "2024-05-10 10:00:00", "checkOutTime" : "2024-05-10 13:00:00” }
{ ”message” : “예약 성공”, ”statusCode” : “200”, ”data” : { ”id” : “2”, ”price”: “20000”, ”reservaionName”: “행복한 방입니다 “, ”userEmail”: “whdrb2643@naver.com”, ”userName”: “김종규”, ”userContact”: “010-1234-1234” } }
"400" : "예약 시간 입력값이 잘못 입력 되었습니다." "400" : “해당 예약 시간에 예약을 못합니다.”
완료
DELETE
/api/v1/rooms/{roomsId}/reservation/{reservationId}
Authorization : Bearer jwt token
{ ”message” : “예약 취소 성공”, ”statusCode” : “200” }
“403” : “해당 유저가 예약한것이 아닙니다.”
완료
GET
/api/v1/reservation
Authorization : Bearer jwt token
-
-
{ ”message” : “회원 예약 정보 조회”, ”statusCode” : “200”, ”data” : { { ”id” : “1”, ”roomName” : “행복한 방입니다.”, ”address” : “경기도 어딘시 어딘구 어딘동 100-1”, ”checkIn” : “2024-01-31 06:00:00.000000”, ”checkOut” : “2024-01-31 11:00:00.000000”, ”isCancelled” : “false”, ”roomsId” : “3” }, { ”id” : “1”, ”roomName” : “행복한 방입니다.”, ”address” : “경기도 어딘시 어딘구 어딘동 100-1”, ”checkIn” : “2024-01-31 06:00:00.000000”, ”checkOut” : “2024-01-31 11:00:00.000000”, ”isCancelled” : “false”, ”roomsId” : “3” } }
완료
GET
/api/v1/reservation/rooms/{roomsId}
Authorization : Bearer jwt token
-
-
{ ”message” : “회원 예약 정보 조회”, ”statusCode” : “200”, ”data” : { { ”id” : “1”, ”roomName” : “행복한 방입니다.”, ”address” : “경기도 어딘시 어딘구 어딘동 100-1”, ”checkIn” : “2024-01-31 06:00:00.000000”, ”checkOut” : “2024-01-31 11:00:00.000000”, ”isCancelled” : “false”, ”roomsId” : “3” }, { ”id” : “1”, ”roomName” : “행복한 방입니다.”, ”address” : “경기도 어딘시 어딘구 어딘동 100-1”, ”checkIn” : “2024-01-31 06:00:00.000000”, ”checkOut” : “2024-01-31 11:00:00.000000”, ”isCancelled” : “false”, ”roomsId” : “3” } }
"404" : "해당 예약이 없습니다." ”403” : “권한이 없습니다”
완료
GET
/api/v1/reservation/{reservationId}
Authorization : Bearer jwt token
-
-
{ ”message” : “회원 예약 정보 조회”, ”statusCode” : “200”, ”data” : { { ”id” : “1”, ”roomName” : “행복한 방입니다.”, ”address” : “경기도 어딘시 어딘구 어딘동 100-1”, ”checkIn” : “2024-01-31 06:00:00.000000”, ”checkOut” : “2024-01-31 11:00:00.000000”, ”isCancelled” : “false”, ”roomsId” : “3” } }
"404", : "해당 예약이 없습니다." "403" : ”해당 유저가 예약한 것이 아닙니다.”
Search
담당자
진행상황
method
기능
URL
request header
response header
request
response
에러 코드
완료
POST
/api/v1/rooms/{roomsId}/likes
Authorization : Bearer jwt token
{ ”message” : “방 좋아요 성공”, ”statusCode” : 200, ”data” : { ”nickName” : “testUser”, ”roomName” : “AirDnS”, ”createdAt” : "2024-05-10T13:00:00”, ”modifiedAt” : "2024-05-10T13:00:00” } }
400 유효하지 않은 요청 403 권한 없음
완료
GET
/api/v1/rooms/{roomsId}/likes
{ ”message” : “방 좋아요 목록 조회 성공”, ”statusCode” : 200, ”data” : { ”nickName” : “testUser”, ”roomName” : “AirDnS”, ”createdAt” : "2024-05-10T13:00:00”, ”modifiedAt” : "2024-05-10T13:00:00” } }
400 유효하지 않은 요청
완료
DELETE
/api/v1/rooms/{roomsId}/likes
Authorization : Bearer jwt token
{ ”message” : “방 좋아요 취소 성공”, ”statusCode” : 200, ”data” : { ”nickName” : “testUser”, ”roomName” : “AirDnS”, ”createdAt” : "2024-05-10T13:00:00”, ”modifiedAt” : "2024-05-10T13:00:00” } }
400 유효하지 않은 요청 403 권한 없음
Search
담당자
진행상황
method
기능
URL
request header
response header
request
response
에러 코드
완료
POST
/api/v1/reservation/{reservationId}/payment
Authorization : Bearer jwt token
{ ”message” : “결제성공”, ”statusCode” : 200 }
404 예약번호를 찾을 수 없습니다.
완료
GET
/api/v1/reservation/{reservationId}/payment/{paymentId}
Authorization : Bearer jwt token
{ ”message” : “결제 조회 성공”, ”statusCode” : 200, ”data” : { ”id” : 1, ”paymentType”: “NORMAL ”, ”amount” : 10000, ”orderName” : “풍경방“, ”reservationId” : 1 } }
404 예약번호를 찾을 수 없습니다. 404 일치하는 예약을 찾을 수 없습니다. 404 예약내역에 일차하는 결제정보가 없습니다.
Search
담당자
진행상황
method
기능
URL
request header
response header
request
response
에러 코드
완료
POST
/api/v1/rooms/{roomsId}/review
Authorization : Bearer jwt token
{ ”content” : “comment1” }
{ ”message” : “리뷰 작성 성공”, ”statusCode” : 200, ”data” : { ”content” : “comment1” } }
400 유효하지 않은 요청, 403 권한 없음
완료
PATCH
/api/v1/rooms/{roomsId}/review/{reviewId}
Authorization : Bearer jwt token
{ ”content” : “changeComment” }
{ ”message” : “리뷰 수정 성공”, ”statusCode” : 200, ”data” : { ”content” : “changeComment” } }
400 유효하지 않은 요청, 403 권한 없음
완료
DELETE
/api/v1/rooms/{roomsId}/review/{reviewId}
Authorization : Bearer jwt token
{ ”message” : “리뷰 작성 취소 성공”, ”statusCode” : 200 }
400 유효하지 않은 요청, 403 권한 없음
완료
GET
/api/v1/rooms/{roomsId}/review
{ ”message” : “리뷰 작성 성공”, ”statusCode” : 201, ”data” : { { ”reviewId” : 1L, ”userId” : 1L, ”nickName” : “user”, ”roomName” : “roomName”, ”createdAt” : “2024-01-26T”, ”content” : “review content” }, { ”reviewId” : 2L, ”userId” : 2L, ”nickName” : “user2”, ”roomName” : “roomName2”, ”createdAt” : “2024-01-26T”, ”content” : “review content2” } } }

6. ERD DIAGRAM

1. 버전 1.1.0

ERD

2. 버전 1.1.2

ERD

2. 버전 1.1.3

ERD