같은 목표를 가진 사람들이 모여서 함께 목표에 도전하는 앱의 API 구현을 위한 백엔드 프로젝트
- 기본 설정
- USERID 1번은 ADMIN이다.
- 회원 가입 기능
- 사용자는 회원 가입해서 서비스를 이용할 수 있다.
- 회원가입하면 기본적으로 MEMBER권한이 부여된다.
- 회원 가입 요청을 보내면 이메일 인증 후 회원 가입이 완료 된다.
- 회원 정보 조회/수정 기능
- 로그인한 사용자만 자신의 회원 정보 조회/수정을 할 수 있다.
- 로그인한 사용자는 자신의 정보를 조회 할 수 있다.
- 로그인한 사용자는 자신의 정보를 수정 할 수 있다.
- 로그인 기능
- 회원 가입을 한 사용자는 로그인을 할 수 있다.
- 로그인시 loginId와 password가 필요하다
- 로그인 성공 시 Access Token과 Refresh Token이 발급된다.
- 소셜 로그인 기능
- 소셜 로그인을 시도하는 사용자는 자동으로 회원 가입 후 로그인이 된다.
- Google, Naver, Kakao 소셜 로그인이 가능하다.
- 관리자 생성
- 관리자 계정을 생성하면 ADMIN 권한이 부여 된다.
- 관리자 계정을 만들 때는 loginId와 password만 필요하다.
- 블랙리스트 등록/해제 기능
- 관리자가 활동이 불량한 회원을 블랙 리스트에 추가 시킨다.
- 관리자가 블랙 리스트에 추가 된 회원을 해제 시킬 수 있다.
- 계좌 금액 충전 기능
- 회원은 계좌에 보증금으로 사용할 금액을 충전 할 수 있다.
- 계좌 충전, 환불 내역 조회 기능
- 계좌를 충전하거나 환불받은 내역을 조회할 수 있다.
- 환불 신청 기능
- 회원은 충전한 금액에 대해 환불 신청할 수 있다.
- 환불 신청 조회 기능
- 회원은 작성한 환불 신청을 조회할 수 있다.
- 관리자는 모든 회원의 환불 신청을 조회할 수 있다.
- 환불 신청 취소 기능
- 회원은 작성한 환불 신청을 취소 할 수 있다.
- 환불 신청 승인/ 비승인 기능
- 관리자는 회원의 환불 신청을 승인 또는 비승인 할 수 있다.
- 회원이 환불 받으려는 금액을 이미 사용했으면 환불이 불가하다.
- 챌린지 기능
- 챌린지를 조회, 생성, 삭제, 수정, 참여가 가능하다.
- 챌린지 전체 조회 기능
- 사용자는 로그인 없이 생성된 모든 챌린지를 조회할 수 있다.
- 챌린지 상세 조회 기능
- 사용자는 생성된 모든 챌린지 중 특정 챌린지 클릭 시 챌린지의 정보를 조회할 수 있다.
- 유저가 생성한 챌린지 조회 기능
- 로그인된 사용자가 생성한 챌린지의 목록을 조회할 수 있다.
- 유저가 참여중인 챌린지 조회 기능
- 로그인된 사용자가 참여중인 챌린지의 목록을 조회할 수 있다.
- 챌린지 참여 기능
- 사용자가 원하는 챌린지에 참여할 수 있다.
- 참여시 원하는 보증금을 입력한다.
- 챌린지 참여 취소 기능
- 사용자는 참여중인 챌린지를 취소할 수 있다.
- 취소는 챌린지가 시작전인 경우 가능하다.
- 챌린지 생성 기능
- 사용자는 생성하고 싶은 챌린지의 정보를 입력하여 챌린지를 생성한다.
- 챌린지 수정 기능
- 사용자는 원하는 챌린지를 선택하고 수정 시 새로운 정보로 수정할 수 있다.
- 챌린지를 생성한 사용자와 로그인 된 사용자가 같은 경우만 수정할 수 있다.
- 챌린지 삭제 기능
- 챌린지를 만든 사용자가 챌린지를 삭제할 수 있다.
- 챌린지 환급 기능
- 챌린지 생성 시 기입한 인증기준을 만족하고 종료일이 지난 후 사용자는 보증금과 환급금을 받을 수 있다.
- 챌린지 검색 기능
- 사용자는 챌린지를 제목과 카테고리로 검색할 수 있다.
- 코테 챌린지 추가 기능
- 챌린지를 만든 회원은 코테 문제를 출제하기 위해 코테 챌린지를 추가할 수 있다.
- 코테 챌린지 조회 기능
- 회원은 코테 문제를 확인하기 위해 오늘의 코테 챌린지를 확인할 수 있다.
- 회원은 코테 문제를 확인하기 위해 모든 코테챌린지를 확인할 수 있다.
- 코테 챌린지 수정 기능
- 챌린지를 만든 회원은 코테 챌린지를 수정할 수 있다.
- 코테 댓글 추가 기능
- 회원은 참여한 코테 챌린지에 인증 댓글을 추가할 수 있다.
- 코테 댓글 조회 기능
- 회원은 코테 챌린지의 인증 댓글을 조회할 수 있다.
- 코테 댓글 수정 기능
- 회원은 내가 작성한 코테 댓글을 수정할 수 있다.
- 코테 댓글 삭제 기능
- 회원은 내가 작성한 코테 댓글을 삭제할 수 있다.
- 관리자는 댓글 관리는 위해 모든 코테 댓글을 삭제할 수 있다.
- 다이어트 챌린지 추가 기능
- 회원은 챌린지 타입이 다이어트인 챌린지에 참여할 때 목표 몸무게 작성을 위해 다이어트 챌린지를 추가한다.
- 다이어트 챌린지 조회 기능
- 회원은 본인이 작성한 다이어트 챌린지를 조회할 수 있다.
- 관리자는 모든 다이어트 챌린지를 조회할 수 있다.
- 다이어트 챌린지 수정 기능
- 회원은 챌린지가 시작하기 전에 다이어트 챌린지를 수정할 수 있다.
- 다이어트 댓글 추가 기능
- 회원은 참여한 다이어트 챌린지에 현재 몸무게를 업데이트 하기 위해 댓글을 추가할 수 있다.
- 다이어트 댓글 조회 기능
- 다이어트 챌린지의 댓글을 조회할 수 있다.
- 다이어트 댓글 수정 기능
- 회원은 작성한 다이어트 댓글을 수정할 수 있다.
- 다이어트 댓글 삭제 기능
- 회원은 작성한 다이어트 댓글을 삭제할 수 있다.
- 관리자는 댓글 관리는 위해 모든 다이어트 댓글을 삭제할 수 있다.
- 물마시기 챌린지 추가 기능
- 회원은 챌린지에 참여할 때 목표 섭취량을 작성하기 위해 챌린지에 물마시기 챌린지 추가한다.
- 물마시기 챌린지 조회 기능
- 회원은 오늘 목표, 현재 섭취량을 확인하기 위해 오늘의 물마시기 챌린지를 조회할 수 있다.
- 물마시기 챌린지 수정 기능
- 회원은 목표 섭취량을 수정하기 위해 물마시기 챌린지를 수정할 수 있다.
- 챌린지가 시작된 경우에는 수정이 불가능하다.
- 물마시기 댓글 추가 기능
- 회원은 현재 섭취량을 업데이트 하기 위해 물마시기 댓글을 추가할 수 있다.
- 물마시기 댓글 조회 기능
- 회원은 댓글을 조회할 수 있다.
- 관리자는 모든 댓글을 조회할 수 있다.
- 물마시기 댓글 수정 기능
- 회원은 작성한 물마시기 댓글을 수정할 수 있다.
- 물마시기 댓글 삭제 기능
- 회원은 작성한 물마시기 댓글을 삭제할 수 있다.
- 관리자는 댓글 관리는 위해 모든 물마시기 댓글을 삭제할 수 있다.
하나의 컨셉으로 여러 기능들을 기획, 구현하고 새로운 기술들을 활용하며 배포하기
- Spring JPA
- Spring Security
- JWT
- OAuth 2.0
- MySQL
- QueryDsl
- Redis
- Java Mail Sender
- Docker
- AWS S3
- AWS EC2
- AWS CloudFront
