Skip to content

Repository files navigation


🗓️ 프로젝트 기간

2023-07-24 ~ 2023-08-11



🙌🏻 프로젝트 설명

  • 파이널 프로젝트 시작 전 프론트엔드와 원활한 협업 연습을 위한 미니 프로젝트입니다.
  • REST API를 설계, 개발하여 직접 서버를 배포하고 프론트엔드와 통신하는 방법을 학습합니다.



👨‍👨‍👦‍👦 개발 팀원

Back-End 👑Back-EndBack-EndFront-End 👑Front-EndFront-End
김훈섭김경호강경민김경원윤금엽황인승



💡 주요 기능

  • 사용자(사원)

    • 회원 가입
      • 이메일, 비밀번호, 이름 입력 후 가입 (사원 번호는 자동으로 할당)
    • 원하는 날짜에 연차 신청
    • 연차 취소 & 취소 신청
    • 마이페이지 기능
      • 잔여 연차 조회, 자신이 사용한 모든 연차 정보 조회
      • 할당받은 당직 조회
      • 비밀번호 재설정
    • 메인페이지 기능
      • 모든 사원의 연차, 당직 현황 조회
  • 관리자

    • 신청된 연차의 승인, 반려 결정
    • 취소 신청된 연차의 승인, 반려 결정
    • 당직 등록, 삭제
    • 모든 사원 정보 조회
      • 잔여 연차수 조회
      • 할당된 당직수 조회



🧑🏻‍💻 팀원 역할

이름역할
김훈섭
팀장
- 관리자 페이지 기능 구현
└ 사용자 전체 목록 조회 (잔여 연차수, 당직수 통계)
└ 사원 계정 삭제 (관련 데이터 모두 삭제)
└ 당직 등록, 삭제
└ 모든 연차 조회 (신청 대기, 취소 상태)
└ 연차 승인, 반려
- DB 설계
- API 설계
- 서버 배포
김경호- 스프링 시큐리티를 이용한 로그인, 회원가입 기능 구현
- JWT 토큰 기능 구현
- AWS LightSail 서버 세팅
- 회원 비밀번호 수정
- DB 설계
- API 설계
- 서버 배포
강경민- 마이페이지, 메인페이지 기능 구현
└ 개인 연차, 당직 조회
└ 연차 신청, 연차 취소 신청 (JWT 토큰 사용)
└ 연차, 당직 전체 목록 조회
- DB 설계
- API 설계
- 서버 배포



🛠️ 프로젝트 기술스택

  • Back-End


  • Front-End


  • Collaboration Tool



📁 백엔드 패키지 구조

com
|-- 📂mini
| |-- 📂annualwork
| | |-- 📂component
| | |-- 📂config
| | |-- 📂controller
| | |-- 📂core
| | |-- 📂dto
| | |-- 📂entity
| | | └-- 📂type
| | |-- 📂exception
| | | └-- 📂handler
| | |-- 📂repository
| | |-- 📂service
└---└---└-- 📂utils



📖 API 명세

image



🖥️ 프로젝트 실행 방법

  • 프로젝트 파일 클론
>> git clone git@github.com:FAST-Mini-Project/back-end.git

  • application.yml 설정
spring:
datasource:
url: jdbc:mysql://[IP]:[Port]/[데이터베이스 스키마]driver-class-name: com.mysql.cj.jdbc.Driverusername: [데이터베이스 유저네임]password: [데이터베이스 비밀번호]jpa:
show-sql: truehibernate:
ddl-auto: [ddl-auto 설정 (create, create-drop, none)]properties:
hibernate:
format_sql: true# JWT 설정jwt:
secret: [JWT 토큰 발행에 필요한 시크릿키]

  • 프로젝트 빌드
>> ./gradlew clean build

  • jar 파일 실행
>> java -jar ./build/libs/anuualwork-0.0.1-SNAPSHOT.jar



► 프로젝트 시현

당연해



🙋🏻‍♂️ 협업 방식

  • Back-End Repository 생성 후 프로젝트 초기 세팅 진행
  • main, develop 브랜치 생성
  • 각자 Local Repository로 Fork 저장소 생성
  • 작업 시작
    • 이슈 생성 (이슈 번호 할당 #12)
    • 이슈 번호에 해당하는 브랜치 생성 (ex. feature/#12-admin-crud)
    • 브랜치에서 코드 작업 진행
    • 작업 완료 후 commit message 작성 (ex. [#12] feat: 관리자 연차 등록 구현)
    • Local Fork 저장소에 Push
    • Main 저장소의 develop 브랜치로 Pull Request 요청
    • Rebase And Merge 전략으로 병합 (충돌은 최대한 Local에서 해결, 깔끔한 커밋 메시지 관리를 위함)
    • 프로젝트 종료 후 develop에서 main으로 Pull Request 요청 후 병합
  • 개발 서버 배포 기간을 협의 후 해당 날짜에 맞춰서 진행
  • 서버 배포 직전에는 반드시 프론트엔드에게 통보



✋🏻 깃허브 커밋 메시지 규칙

[#이슈번호] feat: 새로운 기능 추가했을 때
[#이슈번호] fix: 버그나 오류 수정했을 때
[#이슈번호] refactor: 코드 리팩토링했을 때
[#이슈번호] chore: 약간 애매한 기타 변경사항
[#이슈번호] docs: 리드미 파일이나 md 파일 수정할 때 (문서작업)

About

🖥️ Spring Boot (2.7.14) + Gradle + JDK11 + Spring Data JPA + MySQL + AWS

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages