Skip to content

easter1201/calenderDevelop

Repository files navigation

calenderDevelop

개요

Spring JPA를 사용해 구현한 일정관리 프로그램.

회원가입 후 로그인 시 일정을 자유롭게 작성할 수 있으며, 본인의 일정인 경우 수정 및 삭제도 가능합니다.
모든 일정에 댓글을 달 수 있습니다.

구조

Backend : Spring
DB : MySQL
ORM : Spring Data JPA
Authentication : Cookie / Session 기반 로그인 인증

Package
controller : API 요청
dto : 요청 및 응답 객체
entity : JPA entity
exception : 예외정의 및 처리
repository : JPA repository
config : 비밀번호 암호화
filter : 필터 및 인증
service : 비즈니스 로직

기능

  1. 회원가입
  2. 로그인 / 로그아웃
  3. 회원 정보 수정
  4. 회원 정보 삭제
  5. 일정 생성
  6. 전체 일정 조회
  7. 특정 일정 조회
  8. 일정 수정
  9. 일정 삭제
  10. 댓글 생성
  11. 댓글 조회
  12. 댓글 수정
  13. 댓글 삭제
  14. 비밀번호 암호화

사용방법

API

기능 Method URL request response 상태코드
일정 생성 POST /api/schedules 요청 쿠키
userId: Long

요청 Body
제목: String
내용: String
{
"scheduleId": 4,
"userId": 1,
"scheduleTitle": "java",
"scheduleContent": "12:00 ~ 14:00",
"createdAt": "2025-05-23T15:53:07.8951144",
"updatedAt": "2025-05-23T15:53:07.8951144",
"userName": "updateUser1",
"email": "newUser1@newUser.com"
}
200: 정상등록
선택 일정 조회 GET /api/schedules/{scheduleId} 요청 param
scheduleID: Long
{
"scheduleId": 4,
"userId": 1,
"scheduleTitle": "java",
"scheduleContent": "12:00 ~ 14:00",
"createdAt": "2025-05-23T15:53:07.8951144",
"updatedAt": "2025-05-23T15:53:07.8951144",
"userName": "updateUser1",
"email": "newUser1@newUser.com"
}
200: 정상조회
전체 일정 조회 GET /api/schedules 요청없음 [
{
"scheduleTitle": "java",
"scheduleContent": "12:00 ~ 14:00",
"numberOfComment": 0,
"createdAt": "2025-05-23T15:53:08",
"updatedAt": "2025-05-23T15:53:08",
"userName": "updateUser1"
},
{
"scheduleTitle": "baseball",
"scheduleContent": "play baseball at 14:00",
"numberOfComment": 2,
"createdAt": "2025-05-21T17:18:34",
"updatedAt": "2025-05-21T17:19:20",
"userName": "updateUser1"
},
{
"scheduleTitle": "study",
"scheduleContent": "studying java",
"numberOfComment": 0,
"createdAt": "2025-05-21T17:17:40",
"updatedAt": "2025-05-21T17:17:40",
"userName": "updateUser1"
}
]
200: 정상조회
일정 수정 PUT /api/schedules/{scheduleId} 요청 쿠키
userId: Long

요청 param
scheduleID: Long

요청 Body
제목: String
내용: String
{
"scheduleId": 4,
"userId": 1,
"scheduleTitle": "modifiedjava",
"scheduleContent": "14:00 ~ 15:00",
"createdAt": "2025-05-23T15:53:07.8951144",
"updatedAt": "2025-05-23T15:53:08",
"userName": "updateUser1",
"email": "newUser1@newUser.com"
}
200: 정상수정
일정 삭제 DELETE /api/schedules/{scheduleId} 요청 쿠키
userId: Long

요청 param
scheduleID: Long

요청 Body
비밀번호: String
response 없음 200: 정상삭제
유저 생성 POST /sign 요청 쿠키
userId: Long

요청 Body
이름: String
이메일: String
비밀번호: String
회원 가입 완료 200: 정상등록
유저 수정 PUT /rename 요청 쿠키
userId: Long

요청 Body
이름: String
이메일: String
비밀번호: String
수정 완료 200: 정상수정
유저 삭제 DELETE /quit 요청 쿠키
userId: Long

요청 Body
비밀번호: String
회원 탈퇴 완료 200: 정상삭제
로그인 POST /login 요청 Body
이메일: String
비밀번호: String
login 200: 정상접속
401: 이메일 또는 비밀번호 불일치
로그아웃 POST /logout 요청 쿠키
userId: Long
logout 200: 정상종료
댓글 생성 POST /comments/{scheduleId} 요청 쿠키
userId: Long

요청 param
scheduleID: Long

요청 Body
댓글내용: String
{
"commentId": 6,
"content": "letsgo",
"userName": "updateUser1",
"createdAt": "2025-05-23T16:08:20.1567522",
"updatedAt": "2025-05-23T16:08:20.1567522"
}
200: 정상등록
댓글 조회 GET /comments/{scheduleId} 요청 쿠키
userId: Long

요청 param
scheduleID: Long
[
{
"commentId": 4,
"content": "letsgo",
"userName": "updateUser1",
"createdAt": "2025-05-23T14:37:36",
"updatedAt": "2025-05-23T14:37:36"
},
{
"commentId": 5,
"content": "doit",
"userName": "updateUser1",
"createdAt": "2025-05-23T14:37:44",
"updatedAt": "2025-05-23T14:37:44"
}
]
200: 정상조회
댓글 수정 PUT /comments/{commentId} 요청 쿠키
userId: Long

요청 param
contentID: Long

요청 Body
댓글내용: String
비밀번호: String
{
"commentId": 4,
"content": "updateLetsgo",
"userName": "updateUser1",
"createdAt": "2025-05-23T14:37:36",
"updatedAt": "2025-05-23T14:37:36"
}
200: 정상수정
댓글 삭제 DELETE /comments/{commentId} 요청 쿠키
userId: Long

요청 param
contentID: Long

요청 Body
비밀번호: String
response 없음 200: 정상삭제

ERD

ERD

Version

v1.0.0

초기 구성

v1.1.0

일정 CRUD 구현

v1.2.0

유저 CRUD 구현

v1.3.0

유저 필드에 비밀번호 추가

v1.4.0

Cookie/Session 활용한 로그인 구현
이메일 및 비밀번호 일치하지 않는 경우 401 error 반환

v1.5.0

Validation 활용해 예외처리 적용
@Pattern 활용해 이메일 형식 검증

v1.6.0

비밀번호 암호화

v1.7.0

댓글 CRUD 구현

v1.7.1

댓글 수정 및 삭제 시 비밀번호 입력 의무화

v1.7.2

유저 CRUD 기능 재구현

v1.8.0

페이징조회 구현
README 업데이트

v1.9.0

README 업데이트

v1.9.1

주석 추가

v1.9.2

README 업데이트

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages