Skip to content
Merged

😻 #139

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
289 commits
Select commit Hold shift + click to select a range
6dab191
Feat : 로그인 및 온보딩 페이지 UI 뼈대 설계
plumbestie May 10, 2026
632a65b
fix: 경로명 수정
May 10, 2026
9160a80
feat : 온보딩 및 로그인 UI css 적용 초안
plumbestie May 10, 2026
aeb209d
Feat : assets 폰트, 로고, 스타일 세팅
plumbestie May 10, 2026
473a1d6
[Feat] 전체 세션 조회 API 구현 (GET /api/curriculums)
xihxxn May 9, 2026
e409e9a
Merge pull request #20 from pirogramming/feat/#17
xihxxn May 10, 2026
28119a2
Chore : 온보딩 및 로그인 UI 디테일 수정
plumbestie May 10, 2026
b350746
Merge branch 'develop' into Feat/#15
plumbestie May 10, 2026
1e7ea25
[Chore] 폰트 스타일 세팅 수정
plumbestie May 10, 2026
73a5e5d
Merge pull request #21 from pirogramming/Feat/#15
plumbestie May 10, 2026
ed1440d
fix: Controller, Repository, Service 수정
May 10, 2026
245b013
[Chore] 프론트 폴더 구조 정리 #23
kdhye1119 May 10, 2026
9271a69
Merge pull request #24 from pirogramming/chore/#23
kdhye1119 May 10, 2026
0dbbf66
[feat]헤더 구현 #25
kdhye1119 May 10, 2026
6a7d420
[feat] qna 메인 탭 프론트 구현
kdhye1119 May 10, 2026
4769532
Merge pull request #26 from pirogramming/feat/#25
kdhye1119 May 10, 2026
46df476
[Feat] Q&A 메인 탭 로직 구현
issuejong May 11, 2026
7650b29
Merge branch 'develop' into feat/#8
issuejong May 11, 2026
94ad907
[chore]진행중이 세션만 보이게 바꿈 #28
kdhye1119 May 11, 2026
a6a7987
[Chore] 카드 개수 수정, 헤더 수정
kdhye1119 May 11, 2026
3a6f68d
Merge pull request #29 from pirogramming/chore/#28
kdhye1119 May 11, 2026
9e8514e
Merge pull request #27 from pirogramming/feat/#8
issuejong May 11, 2026
2929aa5
[Fix] exception handler 충돌 해결
issuejong May 11, 2026
06347f9
Merge pull request #31 from pirogramming/fix/#30
issuejong May 11, 2026
af5ec63
[Feat] 로그인 및 온보딩 API 연결
plumbestie May 12, 2026
3e6a9ae
Merge pull request #36 from pirogramming/Feat/#35
plumbestie May 12, 2026
23c6c1f
[Feat] 커리큘럼(부원용) UI 구현 초안
plumbestie May 12, 2026
d6ad702
fix: Swagger Spring 버전 수정
May 12, 2026
b863e36
fix: Attendance Controller 수정
May 12, 2026
9affa49
fix: Attendance DTO 수정
May 12, 2026
c1c99a3
fix: Attendance Repository 수정
May 12, 2026
3510151
fix: Assignment 수정
May 12, 2026
c9b3193
fix: User 안에 있는 예외처리 핸들러 밖과 통합
May 12, 2026
6b8a31a
fix: 출석 관련한 보증금 차감 로직 구현
May 12, 2026
0887a0a
fix: 출석 서비스 및 문법 오류 수정
May 12, 2026
54bb577
Merge branch 'develop' into feat/19
lilyyang0077 May 12, 2026
d46edbc
Merge pull request #38 from pirogramming/feat/19
lilyyang0077 May 12, 2026
a9e4786
[Feat] 세션별 질문방 조회 메인 화면 구현
issuejong May 14, 2026
4648c03
[Docs] 주석 추가
issuejong May 14, 2026
48a0754
[Refactor] LocalDate 반환 포맷 단일화
issuejong May 14, 2026
624c1c4
Merge pull request #40 from pirogramming/feat/#39
issuejong May 14, 2026
2f3089d
[feat]qna list 프론트 일부 구현 #32
kdhye1119 May 14, 2026
87cbf03
[Feat] Spring Security, JJWT 의존성 추가 및 SecurityConfig 뼈대 생성
xihxxn May 14, 2026
ab3d6a6
[Feat] Spring Security, JJWT 의존성 추가 및 SecurityConfig 뼈대 생성
xihxxn May 14, 2026
56762c3
[Feat] 커리큘럼 페이지 주차별 제목 UI 수정
plumbestie May 14, 2026
ad6b85b
Merge branch 'develop' into Feat/#37
plumbestie May 14, 2026
d86e131
[Feat] 커리큘럼 페이지(부원용) UI 수정
plumbestie May 14, 2026
391622f
Merge pull request #44 from pirogramming/Feat/#37
plumbestie May 14, 2026
85811c5
[Fix] 마이그레이션 누락 수정 및 응답 형식 컨벤션 수정
kkw610 May 14, 2026
8d42d36
Merge pull request #46 from pirogramming/feat/#43
kkw610 May 14, 2026
74543bf
[Feat] 로그인 API JWT 발급 구현
xihxxn May 14, 2026
c1e3227
[Feat] 로그인 API JWT 발급 구현
xihxxn May 14, 2026
98b8044
[Feat] JWT 인증 필터 생성 및 Security 필터 체인 등록
xihxxn May 14, 2026
495fb7a
[Feat] JWT 케이스별 예외 처리 및 응답 형식 통일
xihxxn May 14, 2026
8ded0b6
[Feat] JWT 검증 필터 구현 및 케이스별 예외 처리
xihxxn May 14, 2026
5ed1838
[Fix] 모든 엔드포인트 임시 허용 설정
xihxxn May 14, 2026
a27c717
[Feat] 컨트롤러 userId 파라미터 제거 및 SecurityContext에서 추출
xihxxn May 14, 2026
3d050a0
[Feat] SecurityUtil 헬퍼 도입 및 컨트롤러 userId 추출 통일
xihxxn May 14, 2026
3e176b1
[Feat] SecurityConfig 엔드포인트 권한 설정 및 주석 추가
xihxxn May 14, 2026
e06051c
[Feat] JWT 인증 기반 컨트롤러 리팩토링 및 권한 설정
xihxxn May 14, 2026
347b45b
[Feat] 이해도 응답 DTO 추가
issuejong May 15, 2026
fad8a2e
[Feat] 이해도 응답 저장/변경을 위한 코드 추가
issuejong May 15, 2026
1a5184b
[Feat] 이해도 응답 서비스/컨트롤러 코드 추가
issuejong May 15, 2026
81e5f07
[Feat] jwt 인증 로직 추가
issuejong May 15, 2026
e790b4e
Merge pull request #53 from pirogramming/feat/#52
issuejong May 15, 2026
c59e981
chore: 주석 제거 및 코드 정리
May 15, 2026
78fc20c
fix: AttendanceController userId 부분 @AuthenticationPrincipal 로 수정
May 15, 2026
0855612
docs: 허용 경로에 swagger 추가
May 15, 2026
caf761e
fix: 출석체크 request에서 studySessionId 제거
May 16, 2026
a0350fb
Merge pull request #55 from pirogramming/feat/54
lilyyang0077 May 16, 2026
24108c9
feat: flyway 설정 추가
May 16, 2026
8c5f502
refactor: 수정된 ERD에 맞게 수정
May 16, 2026
56e7825
chore: DB 설정 바꿈
May 16, 2026
5406f84
[Feat] 질문 상세 조회 API 구현
kkw610 May 17, 2026
5e520de
Merge pull request #58 from pirogramming/feat/#57
kkw610 May 17, 2026
a55078c
Merge branch 'develop' of https://github.com/pirogramming/PiroIn into…
kdhye1119 May 17, 2026
cd66a4f
[Feat] 커리큘럼 페이지 css 수정
plumbestie May 17, 2026
646cce8
Merge branch 'develop' into Feat/#45
plumbestie May 17, 2026
cc31cb6
[Feat] 질문 댓글 달기 API 구현
kkw610 May 17, 2026
a844ef7
Merge pull request #60 from pirogramming/feat/#59
kkw610 May 17, 2026
d97297b
fix: 최종 ERD에 맞게 flyway script 변경
May 17, 2026
c08398b
fix: 수정된 ERD에 맞춰 엔티티 수정
May 17, 2026
884db8e
[Feat] 커리큘럼 생성 페이지 뼈대
plumbestie May 17, 2026
f23e4d9
[Feat] 질문 좋아요 토글 API 구현
kkw610 May 17, 2026
0566a41
Merge pull request #63 from pirogramming/feat/#61
kkw610 May 17, 2026
ff43779
fix: Id 타입 종류 수정
May 17, 2026
8b8b6ef
fix: 수정된 entity에 맞춰 버그 고치기
May 17, 2026
4d0a7fe
[Chore] CI/CD GitHub Actions 배포 설정 추가
xihxxn May 17, 2026
b257884
[Chore] CI GitHub Actions 빌드 설정 추가
xihxxn May 17, 2026
a1b4f36
[Chore] CI/CD GitHub Actions 배포 설정 추가
xihxxn May 17, 2026
4b40040
[fix]질문 부원 페이지 일부(js 파일 완성, css 수정 필요)
kdhye1119 May 17, 2026
8a5cba6
[Feat] 피로체크 헤더 분기
plumbestie May 17, 2026
61a960f
trigger deploy
xihxxn May 17, 2026
bdc38d3
feat: 체크섬 오류 방지 코드 주석
May 17, 2026
188cf9c
refactor: userId 타입 Integer로 변경
May 17, 2026
7770ba3
fix: 타입 에러 수정 및 칼럼 오류 수정
May 17, 2026
5fcdee5
refactor: userId 전부 BIGINT(Long)로 수정
May 17, 2026
6d5cebd
Merge branch 'develop' into feat/56
lilyyang0077 May 17, 2026
e2a08d4
fix: 타 파트(Question) ID 타입 불일치 컴파일 에러 해결
May 17, 2026
129ffdf
feat: 푸쉬 전 커밋
May 17, 2026
af98dff
Merge pull request #68 from pirogramming/feat/56
lilyyang0077 May 17, 2026
62e181c
feat: AssignmentStatus에 PENDING 추가
May 17, 2026
f4e1011
feat: Swagger Authorize 추가
May 17, 2026
3b31115
feat: 과제 상태 PENDING 추가
May 17, 2026
2cffc50
feat: 과제 생성 api
May 17, 2026
ceb518c
Merge pull request #70 from pirogramming/feat/69
lilyyang0077 May 17, 2026
0a2f6e1
trigger deploy
xihxxn May 17, 2026
d151187
[Chore] deploy.yml 환경변수 수정 및 healthcheck 추가
xihxxn May 17, 2026
43a71ea
[Chore] CI/CD 환경변수 수정 및 Actuator healthcheck 추가
xihxxn May 17, 2026
fd55e8c
[feat] 대댓글까지 디자인 완성, 글 입력창 해야함
kdhye1119 May 18, 2026
45f286e
Merge pull request #73 from pirogramming/Feat/#32
kdhye1119 May 18, 2026
ef2eb1d
[Feat] 이해도 체크 생성 API 구현
issuejong May 18, 2026
84da19a
[Fix] StudySession ID 타입 정합성 및 보안 매처 정리
issuejong May 18, 2026
2e146d9
Merge pull request #75 from pirogramming/feat/#74
issuejong May 18, 2026
0d76b2f
feat: Assignment 수정 API 구현
May 18, 2026
f534a34
feat: Assignment 삭제 API
May 18, 2026
fb445e2
fix: 출석체크 부분 authentication으로 userId 받도록 수정
May 18, 2026
3f31315
Merge pull request #76 from pirogramming/feat/#71
lilyyang0077 May 18, 2026
8b487b8
feat: 본인의 과제 상태 조회 api 구현
May 18, 2026
878210c
feat: 보증금 조회 api 구현
May 18, 2026
65a091d
feat: 부원 목록 조회 api 구현
May 18, 2026
ae74f06
feat: 부원 이름 검색 기능
May 18, 2026
43e028f
fix: swagger 보조글 수정
May 18, 2026
0f41fe7
Merge pull request #78 from pirogramming/feat/77
lilyyang0077 May 18, 2026
301f0b6
refactor: AttendanceDate LocalDate으로 형 변환
May 18, 2026
81d8b81
fix: 과제 생성 요일 입력으로 수정
May 18, 2026
e0ff4c7
fix: 과제 수정 부분 요일 입력으로 수정
May 18, 2026
f2e08e0
fix: sql 문법 -> 서비스 로직으로 처리
May 18, 2026
29871e4
feat: 과제 생성 ERROR CODE 추가
May 19, 2026
cef3b26
feat: (운영진) 특정 학생 과제/출석 상태 수정 api 구현
May 19, 2026
0c89db6
Merge pull request #80 from pirogramming/feat/79
lilyyang0077 May 19, 2026
69671fa
Merge branch 'develop' into Feat/#62
plumbestie May 20, 2026
8da720c
[Feat] 피로체크 헤더 다크모드 구현
plumbestie May 20, 2026
fbc79c7
[Feat] 출석 화면 UI 뼈대 설계
plumbestie May 20, 2026
657a501
[Feat] 질문 리스트 (부원) #32
kdhye1119 May 21, 2026
8e6e54a
Merge pull request #83 from pirogramming/Feat/#32
kdhye1119 May 22, 2026
cd3e726
[feat] isstaff일 때 질문 리스트 화면 구현 완료 #32
kdhye1119 May 22, 2026
bd7bd19
Merge pull request #84 from pirogramming/Feat/#32
kdhye1119 May 22, 2026
3cc39dd
[Refactor]svg만 따로 모아둘 수 있게 파일 분리
kdhye1119 May 22, 2026
7ac82f1
Merge pull request #86 from pirogramming/Feat/#85
kdhye1119 May 22, 2026
e8bf36c
[Feat] Attendance UI 구현
plumbestie May 23, 2026
25d3540
Merge pull request #87 from pirogramming/Feat/#62
plumbestie May 23, 2026
960e453
[Feat] pirocheck 메인 화면 UI
plumbestie May 23, 2026
c816557
Merge pull request #89 from pirogramming/Feat/#88
plumbestie May 23, 2026
2ed9f3f
[Feat] 질문 상세페이지 구현 #85
kdhye1119 May 23, 2026
912816d
Merge pull request #91 from pirogramming/Feat/#85
kdhye1119 May 23, 2026
d9ff1f8
[Feat] 질문 메인페이지 api 연결 #92
kdhye1119 May 23, 2026
7ef9beb
Merge pull request #93 from pirogramming/Feat/#92
kdhye1119 May 23, 2026
1c110b3
[feat] isstaff일 때 질문 리스트 화면 구현 완료 #32
kdhye1119 May 22, 2026
fbdad23
[Refactor]svg만 따로 모아둘 수 있게 파일 분리
kdhye1119 May 22, 2026
cf8a892
feat: AM/PM 세션 일괄 생성 API 구현
xihxxn May 22, 2026
988506d
fix: .env 파일 import 설정 추가
xihxxn May 22, 2026
70670d5
feat: 세션 삭제 날짜 단위 AM/PM 동시 삭제로 변경
xihxxn May 22, 2026
7625967
feat: 커리큘럼 전체 조회 API 구현
xihxxn May 22, 2026
77c4468
feat: 커리큘럼 수정 API 하루 단위로 구현
xihxxn May 22, 2026
cc8ce3a
fix: 커리큘럼 description 필드 API 노출에서 제거
xihxxn May 23, 2026
79bf90b
feat: 세션 날짜 중복 방지 및 수정 시 날짜 변경 기능 추가
xihxxn May 23, 2026
e224558
fix: 세션 수정 시 status 필드 추가
xihxxn May 23, 2026
0bd1ae0
[Feat] Assignment UI 구현
plumbestie May 23, 2026
9fc30b5
[Fix] App.js conflicts 해결
plumbestie May 23, 2026
ee6c3dc
Merge branch 'develop' into #82
xihxxn May 23, 2026
597e56a
커리큘럼 CRUD API 수정
xihxxn May 23, 2026
5d8428f
Merge pull request #95 from pirogramming/Feat/#90
plumbestie May 23, 2026
b90e964
[Feat] 부원용 Deposit Check UI
plumbestie May 23, 2026
c5a6957
[Feat] 부원용 Deposite Check UI 수정
plumbestie May 23, 2026
3f50de0
Merge pull request #97 from pirogramming/Feat/#96
plumbestie May 23, 2026
9090deb
feat: 출석 자동 만료 될 때에도 보증금 차감
May 23, 2026
bdfea46
feat: 부원 상태 수정 시 보증금 재계산 로직
May 23, 2026
2608b9e
fix: 과제 미제출 보증금 차감 3만원 수정
May 23, 2026
326bd60
fix: 과제 상태 2개로 나눔
May 23, 2026
787a19b
[Feat] 수강생 관리 UI 뼈대
plumbestie May 23, 2026
46d5557
[Feat] Studentlist css 수정
plumbestie May 24, 2026
eb92701
[Feat] StudentDetail UI
plumbestie May 24, 2026
8c2538c
Merge pull request #99 from pirogramming/Feat/#96
plumbestie May 24, 2026
54c3350
feat: 주석 추가
May 24, 2026
1d33394
fix: createQuestion userID 타입 Integer→Long 수정
kkw610 May 24, 2026
09ced41
feat: 질문 수정 API 구현
kkw610 May 24, 2026
caf818a
feat: 질문 삭제 API 구현
kkw610 May 24, 2026
d5a4959
Merge pull request #101 from pirogramming/feat/#64
kkw610 May 24, 2026
6cbcdcd
[Feat] Deposit, Studentlist, Assignment API 연결
plumbestie May 24, 2026
1d07172
fix: AssignmentRequest에서 id 제거
May 24, 2026
ea5a0c1
feat: 질문 상태 완료 전환 API 구현
kkw610 May 24, 2026
6b6ac79
Merge pull request #103 from pirogramming/feat/81
lilyyang0077 May 24, 2026
d3ea594
Merge pull request #104 from pirogramming/feat/#102
kkw610 May 24, 2026
45f7b9f
fix: question 도메인 validateAdmin에서 출력되는 에러 메시지 간단 수정
kkw610 May 24, 2026
7635916
[Feat] Attendance API 연결 및 API 요청 코드 추가
plumbestie May 24, 2026
c787ee6
feat: 과제 조회 api
May 24, 2026
bd9b61c
[Feat] 피로체크 JWT 토큰 기반 API 인증 연동
plumbestie May 24, 2026
a7ae3c6
[Feat] Assignment css 수정
plumbestie May 24, 2026
e6065b7
feat: 운영진이 특정 부원의 보증금 조회 api
May 24, 2026
8acf82e
[Fix] App.js Conflicts 해결
plumbestie May 24, 2026
70839b0
feat: 특정 부원의 보증금 수정 api
May 24, 2026
0ce32d2
Merge pull request #106 from pirogramming/Feat/#100
plumbestie May 24, 2026
4a597ca
Merge pull request #107 from pirogramming/feat/105
lilyyang0077 May 24, 2026
17cfe2b
Merge branch 'develop' into Feat/#45
plumbestie May 24, 2026
9069e76
fix: 보증금 최대한도 10만원 엔티티 수정
May 24, 2026
980fb81
[Feat] 댓글 미리보기 추가
issuejong May 24, 2026
9ee8bfa
[Feat] 질문 댓글 구독 이벤트 추가
issuejong May 24, 2026
a3c3c0e
[Feat] 댓글 생성 이벤트 구현
issuejong May 24, 2026
339819c
[Docs] 주석 추가
issuejong May 24, 2026
1a6af99
Merge pull request #111 from pirogramming/fix/108
lilyyang0077 May 24, 2026
116d511
[Refactor] 코드 리뷰 반영
issuejong May 24, 2026
e631667
Merge pull request #110 from pirogramming/feat/#109
issuejong May 24, 2026
062f40d
[Feat] 운영진용 커리큘럼 목록 UI
plumbestie May 24, 2026
4d78ec8
[Feat] 커리큘럼 생성 페이지 UI
plumbestie May 26, 2026
ebbce80
Merge pull request #112 from pirogramming/Feat/#45
plumbestie May 26, 2026
b4af607
[Fix] 로그인 페이지 수정
kdhye1119 May 26, 2026
451029e
Merge pull request #113 from pirogramming/Feat/#92
kdhye1119 May 26, 2026
8221909
feat: 질문 목록 응답에 isLiked 필드 추가
kkw610 May 27, 2026
98f3835
Merge pull request #115 from pirogramming/feat/#114
kkw610 May 27, 2026
2c01cb8
[feat] 질문 페이지 api 연결
kdhye1119 May 27, 2026
099e90f
Merge pull request #117 from pirogramming/Feat/#92
kdhye1119 May 27, 2026
2501f6f
feat: 질문 목록 및 상세 응답에 isMine 필드 추가
kkw610 May 27, 2026
7a5e098
Merge pull request #119 from pirogramming/feat/#118
kkw610 May 28, 2026
06c6434
feat: 이미지 업로드 API 구현 및 질문/댓글 imageUrl 연동
kkw610 May 28, 2026
01c20a6
Merge pull request #121 from pirogramming/feat/#120
kkw610 May 28, 2026
feb8e2f
[Feat] 이해도 체크 응답 DTO 확장
issuejong May 28, 2026
0706b03
[Feat] 세션 기준 출석 인원 계산 로직 추가
issuejong May 28, 2026
143d4d0
[Feat] 질문방/이해도 조회 API에 출석 인원 연결
issuejong May 28, 2026
5e69204
fix: 이미지 업로드 API 스웨거 파일 선택 버튼 미표시 수정
kkw610 May 28, 2026
263a20d
Merge pull request #124 from pirogramming/fix/#123
kkw610 May 28, 2026
d7731ba
[Feat] 이해도 응답 제출 API 응답 형식 통일
issuejong May 28, 2026
ffc7676
[Docs] 주석 추가
issuejong May 28, 2026
545cb88
Merge pull request #125 from pirogramming/feat/#122
issuejong May 28, 2026
580a6be
fix: 이미지 업로드 파일 저장 경로 및 Content-Type 오류 수정
kkw610 May 29, 2026
0569e7e
Merge pull request #127 from pirogramming/fix/#126
kkw610 May 29, 2026
c4112ae
[feat]이미지 등록 api 연결
kdhye1119 May 29, 2026
cf502b0
feat: 댓글 수정 및 삭제 API 구현
kkw610 May 29, 2026
c16b514
Merge pull request #130 from pirogramming/feat/#128
kkw610 May 29, 2026
3c24eac
Merge branch 'develop' of https://github.com/pirogramming/PiroIn into…
kdhye1119 May 29, 2026
b21a88a
[Feat] 미리보기 댓글에 사진 존재 유무 필드 추가
issuejong May 29, 2026
88a1f5b
Merge pull request #131 from pirogramming/feat/#129
issuejong May 29, 2026
9be3d38
Merge branch 'develop' of https://github.com/pirogramming/PiroIn into…
kdhye1119 May 29, 2026
98518f4
[feat] 이미지 넣기, 스태프 표시, 댓글 수정 기능
kdhye1119 May 29, 2026
9924ac3
[Fix] 댓글 작성 응답에 최신 질문 상태 추가
issuejong May 29, 2026
dd2ea5e
[feat]사진 미리보기 api 연결 #92
kdhye1119 May 29, 2026
99e2df2
[Feat] 댓글 생성 SSE 이벤트에도 최신 질문 상태 추가
issuejong May 29, 2026
6d932c2
[Docs] 주석 추가
issuejong May 29, 2026
30b8abd
[Feat] comments에 isMine 필드 추가
issuejong May 29, 2026
c641aaa
Merge pull request #133 from pirogramming/fix/#132
issuejong May 29, 2026
74b1bf2
Merge pull request #134 from pirogramming/Feat/#92
kdhye1119 May 29, 2026
093871d
[feat]해결됨 -> 미해결 api 연결
kdhye1119 May 30, 2026
8316fb0
[refactor] QnA 페이지들 리팩토링 및 주석 추가
kdhye1119 May 30, 2026
d75bf73
Merge pull request #135 from pirogramming/Feat/#92
kdhye1119 May 30, 2026
442e1db
[Feat] 헤더 로그아웃 추가
plumbestie May 31, 2026
e65a3a4
Merge pull request #136 from pirogramming/Feat/#116
plumbestie May 31, 2026
a0b543e
[Feat] StudentDetail API 연결
plumbestie May 31, 2026
f9aacae
[Fix] 커리큘럼 css 정렬 수정
plumbestie May 31, 2026
1d9cc90
[Fix] package.json 버그 수정
plumbestie May 31, 2026
45c03ef
Merge pull request #138 from pirogramming/Feat/#137
plumbestie May 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## #️⃣연관된 이슈

> ex) #이슈번호, #이슈번호

## 📝작업 내용

> 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)

### 스크린샷 (선택)

## 💬리뷰 요구사항(선택)

> 리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요
>
> ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?
33 changes: 33 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: CI

on:
pull_request:
branches: [ develop ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'corretto'

- name: Grant execute permission for gradlew
run: chmod +x backend/gradlew

- name: Build with Gradle
working-directory: backend
run: ./gradlew bootJar -x test
env:
RDS_ENDPOINT: ${{ secrets.RDS_ENDPOINT }}
RDS_DB_NAME: ${{ secrets.RDS_DB_NAME }}
RDS_USERNAME: ${{ secrets.RDS_USERNAME }}
RDS_PASSWORD: ${{ secrets.RDS_PASSWORD }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
JWT_EXPIRATION: ${{ secrets.JWT_EXPIRATION }}
71 changes: 71 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Deploy to EC2

on:
push:
branches: [ develop ]

jobs:
deploy:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'corretto'

- name: Grant execute permission for gradlew
run: chmod +x backend/gradlew

- name: Build with Gradle
working-directory: backend
run: ./gradlew bootJar -x test
env:
RDS_ENDPOINT: ${{ secrets.RDS_ENDPOINT }}
RDS_DB_NAME: ${{ secrets.RDS_DB_NAME }}
RDS_USERNAME: ${{ secrets.RDS_USERNAME }}
RDS_PASSWORD: ${{ secrets.RDS_PASSWORD }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
JWT_EXPIRATION: ${{ secrets.JWT_EXPIRATION }}

- name: Log in to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build and push Docker image
working-directory: backend
run: |
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/piroin-backend:latest .
docker push ${{ secrets.DOCKERHUB_USERNAME }}/piroin-backend:latest

- name: Deploy to EC2
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/piroin-backend:latest
docker stop piroin-backend || true
docker rm piroin-backend || true
docker run -d \
--name piroin-backend \
--restart unless-stopped \
-p 8080:8080 \
--health-cmd="curl -f http://localhost:8080/actuator/health || exit 1" \
--health-interval=30s \
--health-timeout=10s \
--health-retries=3 \
-e RDS_ENDPOINT="${{ secrets.RDS_ENDPOINT }}" \
-e RDS_DB_NAME="${{ secrets.RDS_DB_NAME }}" \
-e RDS_USERNAME="${{ secrets.RDS_USERNAME }}" \
-e RDS_PASSWORD="${{ secrets.RDS_PASSWORD }}" \
-e JWT_SECRET="${{ secrets.JWT_SECRET }}" \
-e JWT_EXPIRATION="${{ secrets.JWT_EXPIRATION }}" \
${{ secrets.DOCKERHUB_USERNAME }}/piroin-backend:latest
20 changes: 18 additions & 2 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,24 @@ dependencies {
testAnnotationProcessor 'org.projectlombok:lombok'

// Swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-api:2.5.0'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.0'

// Actuator
implementation 'org.springframework.boot:spring-boot-starter-actuator'


// Flyway
implementation 'org.springframework.boot:spring-boot-flyway'
implementation 'org.flywaydb:flyway-core'
implementation 'org.flywaydb:flyway-database-postgresql'

// Spring Security
implementation 'org.springframework.boot:spring-boot-starter-security'

// JJWT
implementation 'io.jsonwebtoken:jjwt-api:0.12.6'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.6'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.6'

}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,78 @@
package com.example.Piroin.project.domain.assignment.controller;

import com.example.Piroin.project.domain.assignment.dto.*;
import com.example.Piroin.project.domain.assignment.entity.DeleteAssignmentResponse;
import com.example.Piroin.project.domain.assignment.service.AssignmentService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.*;


@RestController
@RequiredArgsConstructor
@RequestMapping("/api/assignments")
@Tag(name = "피로체크 과제 관리", description = "피로체크 과제 관리 API")
public class AssignmentController {

private final AssignmentService assignmentService;

// 1. 과제 생성
@Operation(summary = "과제 생성", description = "새로운 과제를 운영진이 입력하여 생성합니다.")
@PostMapping("/create")
@ResponseStatus(HttpStatus.CREATED)
public CreateAssignmentResponse createAssignment(
@RequestBody CreateAssignmentRequest request
) {
return assignmentService.createAssignment(request);
}

// 2. 과제 수정
@Operation(summary = "과제 수정", description = "과제에 대한 과제명/주차/날짜를 운영진이 수정합니다.")
@PatchMapping("/modify/{assignmentId}")
public ModifyAssignmentResponse modifyAssignment(
@PathVariable Integer assignmentId,
@RequestBody ModifyAssignmentRequest request
) {
return assignmentService.modifyAssignment(assignmentId, request);
}


// 3. 과제 삭제
@Operation(summary = "과제 삭제", description = "운영진이 과제를 삭제합니다.")
@DeleteMapping("/{assignmentId}")
@ResponseStatus(HttpStatus.OK)
public DeleteAssignmentResponse deleteAssignment(
@PathVariable Integer assignmentId
) {

return assignmentService.deleteAssignment(assignmentId);
}

// 4. 나의 과제 상태 조회 (부원)
@Operation(summary = "나의 과제 조회", description = "부원이 본인의 과제 상태를 조회합니다.")
@GetMapping("/me/{week}")
public GetMyAssignmentsResponse getMyAssignments(
@PathVariable String week,
Authentication authentication
) {

Long userId = Long.valueOf(authentication.getName());

return assignmentService.getMyAssignments(userId, week);
}

// 5. 생성한 과제 조회 (운영진)
@Operation(summary = "과제 목록 조회", description = "주차별로 화/목/토 과제 목록을 조회합니다.")
@GetMapping("/{week}/view")
public AssignmentWeekViewResponse getAssignmentView(
@PathVariable String week
) {
return assignmentService.getAssignmentView(week);
}


}

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.example.Piroin.project.domain.assignment.dto;

import com.example.Piroin.project.domain.assignment.enums.AssignmentStatus;
import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class AssignmentInfoResponse {

private Integer assignmentId;

private String title;

private String week;

private String sessionDate;

private String day;

private AssignmentStatus submitted;
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.example.Piroin.project.domain.assignment.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;

import java.time.LocalDate;
import java.util.List;

@Getter
@Builder
@AllArgsConstructor
public class AssignmentWeekViewResponse {

private String week;

private List<DayAssignmentResponse> days;

@Getter
@Builder
@AllArgsConstructor
public static class DayAssignmentResponse {
private String day;
private LocalDate sessionDate;
private List<AssignmentInfo> assignments;
}

@Getter
@Builder
@AllArgsConstructor
public static class AssignmentInfo {
private Integer assignmentId;
private String title;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.example.Piroin.project.domain.assignment.dto;

import lombok.Getter;

import java.time.DayOfWeek;
import java.time.LocalDate;

@Getter
public class CreateAssignmentRequest {

private String title;

private String week;

private DayOfWeek day;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.example.Piroin.project.domain.assignment.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class CreateAssignmentResponse {

private Integer assignmentId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.example.Piroin.project.domain.assignment.dto;

import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Builder;
import lombok.Getter;

import java.util.List;

@Getter
@Builder
@JsonPropertyOrder({"week", "assignments"})
public class GetMyAssignmentsResponse {

private String week;

private List<AssignmentInfoResponse> assignments;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.Piroin.project.domain.assignment.dto;

import lombok.Getter;

import java.time.DayOfWeek;
import java.time.LocalDate;

@Getter
public class ModifyAssignmentRequest {
private String title;

private String week;

private DayOfWeek day;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.example.Piroin.project.domain.assignment.dto;


import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class ModifyAssignmentResponse {
private Integer assignmentId;
}
Loading
Loading