Skip to content

spartaSpringTeamA6/dev-quiz-backend

Repository files navigation

개발자의, 개발자에 의한, 개발자를 위한,
DevQuiz

목차

🐾팀 소개

팀 이름

🐾개발.zip

🐾팀 멤버
박정환 최혁 이지선 박상신 안주환
@Junghwan1106 @Youkamii @jiisuniui @dmlal @rawfk
OPENAI API
Quiz API
Category API
Leader
Board API
Comment API
Comment Like API
Deputy Leader
Team API
FrontEnd
CICD
Coin API
Quiz API
OAuth
User API
FrontEnd

프로젝트 소개

프로젝트 이름

DevQuiz

  • 프로젝트 지속기간: 2023.01.04-2023.02.07
  • 개발 언어:

개요

개발자의, 개발자에 의한, 개발자를 위한 CS 면접 준비 퀴즈 사이트.
개발자 및 개발 지망생을 위해 개발 관련 퀴즈를 4지선다 형식으로 제공합니다.
팀 또는 개인으로 사용 가능하며, 비회원 및 회원(깃허브) 모두 이용 가능합니다.

🐾 Demo Video

🐾 프로젝트 관련 Links

🐾 UI/UX

펼치기

Image description Image description

🐾 ERD

펼치기

Image description

🐾 아키텍처

펼치기

Image description

🐾 API 명세서

  • Domain 기준으로 API 구조 설계
  • 와이어 프레임을 참고로 순차적으로 작동하도록 설계 함
User API

Image description

Auth API

Image description

Quiz API

Image description

Category API

Image description

Coin API

Image description

Board API

Image description

Comment API

Image description

Team API

Image description

Admin API

Image description

🐾 Commit Convention

Tag Name Description
✨ feat 해당 파일에 새로운 기능이 생김
🎉 create 없던 파일을 생성함, 초기 세팅
♻️ refactor 코드 리팩토링
🐛 fix 코드 수정
🚑 HOTFIX 급하게 치명적인 버그를 고쳐야하는 경우
📌 chore 빌드 업무 수정, 패키지 관리자 구성 등 업데이트, Production Code 변경 없음
🚚 rename 파일 옮김/정리, 파일명 변경
🔥 remove 기능/파일을 삭제
✅ test 테스트 코드를 작성
💄 style css
💬 docs md 파일, 문서 작업
💡 comment 필요한 주석 추가 및 변경
🙈 gitfix gitignore 수정
🔀 gitmerge 브랜치 합병
⏪ gitrevert 변경 내용 되돌리기

🐾 File Structure

펼치기
devquiz
 ┣ domain
 ┃ ┣ board
 ┃ ┃ ┣ controller
 ┃ ┃ ┃ ┗ BoardController.java
 ┃ ┃ ┣ dto
 ┃ ┃ ┃ ┣ request
 ┃ ┃ ┃ ┃ ┣ BoardCreateRequest.java
 ┃ ┃ ┃ ┃ ┗ BoardUpdateRequest.java
 ┃ ┃ ┃ ┗ response
 ┃ ┃ ┃ ┃ ┣ BoardCreateResponse.java
 ┃ ┃ ┃ ┃ ┗ BoardDetailsResponse.java
 ┃ ┃ ┣ entity
 ┃ ┃ ┃ ┗ Board.java
 ┃ ┃ ┣ exception
 ┃ ┃ ┃ ┣ BoardCustomException.java
 ┃ ┃ ┃ ┗ BoardExceptionCode.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┗ BoardRepository.java
 ┃ ┃ ┣ response
 ┃ ┃ ┃ ┗ BoardResponseCode.java
 ┃ ┃ ┗ service
 ┃ ┃ ┃ ┗ BoardService.java
 ┃ ┣ category
 ┃ ┃ ┣ controller
 ┃ ┃ ┃ ┗ CategoryController.java
 ┃ ┃ ┣ dto
 ┃ ┃ ┃ ┣ request
 ┃ ┃ ┃ ┃ ┗ CategoryCreateRequest.java
 ┃ ┃ ┃ ┗ response
 ┃ ┃ ┃ ┃ ┗ CategoryGetResponse.java
 ┃ ┃ ┣ entity
 ┃ ┃ ┃ ┗ Category.java
 ┃ ┃ ┣ enums
 ┃ ┃ ┃ ┗ QuizCategory.java
 ┃ ┃ ┣ exception
 ┃ ┃ ┃ ┣ CategoryCustomException.java
 ┃ ┃ ┃ ┗ CategoryExceptionCode.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┗ CategoryRepository.java
 ┃ ┃ ┣ response
 ┃ ┃ ┃ ┗ CategoryResponseCode.java
 ┃ ┃ ┗ service
 ┃ ┃ ┃ ┗ CategoryService.java
 ┃ ┣ coin
 ┃ ┃ ┣ controller
 ┃ ┃ ┃ ┗ CoinController.java
 ┃ ┃ ┣ dto
 ┃ ┃ ┃ ┣ request
 ┃ ┃ ┃ ┃ ┣ CoinSaveRequest.java
 ┃ ┃ ┃ ┃ ┗ CoinUseRequest.java
 ┃ ┃ ┃ ┗ response
 ┃ ┃ ┃ ┃ ┣ CoinGetInfoResponse.java
 ┃ ┃ ┃ ┃ ┗ CoinUseResponse.java
 ┃ ┃ ┣ entity
 ┃ ┃ ┃ ┗ Coin.java
 ┃ ┃ ┣ enums
 ┃ ┃ ┃ ┗ CoinContent.java
 ┃ ┃ ┣ exception
 ┃ ┃ ┃ ┣ CoinCustomException.java
 ┃ ┃ ┃ ┗ CoinExceptionCode.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┗ CoinRepository.java
 ┃ ┃ ┣ response
 ┃ ┃ ┃ ┗ CoinResponseCode.java
 ┃ ┃ ┗ service
 ┃ ┃ ┃ ┗ CoinService.java
 ┃ ┣ comment
 ┃ ┃ ┣ controller
 ┃ ┃ ┃ ┗ CommentController.java
 ┃ ┃ ┣ dto
 ┃ ┃ ┃ ┣ request
 ┃ ┃ ┃ ┃ ┣ CommentCreateRequest.java
 ┃ ┃ ┃ ┃ ┗ CommentUpdateRequest.java
 ┃ ┃ ┃ ┗ response
 ┃ ┃ ┃ ┃ ┣ CommentCreateResponse.java
 ┃ ┃ ┃ ┃ ┣ CommentDetailsResponse.java
 ┃ ┃ ┃ ┃ ┗ CommentInfoResponse.java
 ┃ ┃ ┣ entity
 ┃ ┃ ┃ ┣ Comment.java
 ┃ ┃ ┃ ┣ CommentLike.java
 ┃ ┃ ┃ ┗ CommentLikeId.java
 ┃ ┃ ┣ exception
 ┃ ┃ ┃ ┣ CommentCustomException.java
 ┃ ┃ ┃ ┗ CommentExceptionCode.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┣ CommentLikeRepository.java
 ┃ ┃ ┃ ┗ CommentRepository.java
 ┃ ┃ ┣ response
 ┃ ┃ ┃ ┗ CommentResponseCode.java
 ┃ ┃ ┗ service
 ┃ ┃ ┃ ┗ CommentService.java
 ┃ ┣ quiz
 ┃ ┃ ┣ controller
 ┃ ┃ ┃ ┗ QuizController.java
 ┃ ┃ ┣ dto
 ┃ ┃ ┃ ┣ common
 ┃ ┃ ┃ ┃ ┣ CustomQuizDto.java
 ┃ ┃ ┃ ┃ ┗ QuizQueryDto.java
 ┃ ┃ ┃ ┣ request
 ┃ ┃ ┃ ┃ ┣ QuizAnswerSubmitRequest.java
 ┃ ┃ ┃ ┃ ┣ QuizCreateRequest.java
 ┃ ┃ ┃ ┃ ┣ QuizPassRequest.java
 ┃ ┃ ┃ ┃ ┣ QuizRandomRequest.java
 ┃ ┃ ┃ ┃ ┗ QuizUpdateRequest.java
 ┃ ┃ ┃ ┗ response
 ┃ ┃ ┃ ┃ ┣ QuizDetailInfoResponse.java
 ┃ ┃ ┃ ┃ ┣ QuizGetByUserResponse.java
 ┃ ┃ ┃ ┃ ┣ QuizInfoResponse.java
 ┃ ┃ ┃ ┃ ┣ QuizPassResponse.java
 ┃ ┃ ┃ ┃ ┣ QuizQueryResponse.java
 ┃ ┃ ┃ ┃ ┣ QuizRandomResponse.java
 ┃ ┃ ┃ ┃ ┣ QuizResultResponse.java
 ┃ ┃ ┃ ┃ ┗ QuizSolvedGrassResponse.java
 ┃ ┃ ┣ entity
 ┃ ┃ ┃ ┣ Quiz.java
 ┃ ┃ ┃ ┣ QuizChoice.java
 ┃ ┃ ┃ ┗ UserQuiz.java
 ┃ ┃ ┣ enums
 ┃ ┃ ┃ ┗ UserQuizStatus.java
 ┃ ┃ ┣ exception
 ┃ ┃ ┃ ┣ QuizChoiceCustomException.java
 ┃ ┃ ┃ ┣ QuizChoiceExceptionCode.java
 ┃ ┃ ┃ ┣ QuizCustomException.java
 ┃ ┃ ┃ ┗ QuizExceptionCode.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┣ QuizChoiceRepository.java
 ┃ ┃ ┃ ┣ QuizRepository.java
 ┃ ┃ ┃ ┣ QuizUserRepository.java
 ┃ ┃ ┃ ┣ QuizUserRepositoryCustom.java
 ┃ ┃ ┃ ┗ QuizUserRepositoryCustomImpl.java
 ┃ ┃ ┣ response
 ┃ ┃ ┃ ┗ QuizResponseCode.java
 ┃ ┃ ┗ service
 ┃ ┃ ┃ ┗ QuizService.java
 ┃ ┣ skill
 ┃ ┃ ┣ controller
 ┃ ┃ ┃ ┗ SkillController.java
 ┃ ┃ ┣ entity
 ┃ ┃ ┃ ┗ Skill.java
 ┃ ┃ ┣ enums
 ┃ ┃ ┃ ┗ UserSkill.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┗ SkillRepository.java
 ┃ ┃ ┗ response
 ┃ ┃ ┃ ┗ SkillResponseCode.java
 ┃ ┣ team
 ┃ ┃ ┣ controller
 ┃ ┃ ┃ ┗ TeamController.java
 ┃ ┃ ┣ dto
 ┃ ┃ ┃ ┣ request
 ┃ ┃ ┃ ┃ ┣ TeamCreateRequest.java
 ┃ ┃ ┃ ┃ ┣ TeamDeleteUserRequest.java
 ┃ ┃ ┃ ┃ ┣ TeamInviteUserRequest.java
 ┃ ┃ ┃ ┃ ┣ TeamUpdateAdminRequest.java
 ┃ ┃ ┃ ┃ ┗ TeamUpdateNameRequest.java
 ┃ ┃ ┃ ┗ response
 ┃ ┃ ┃ ┃ ┣ TeamCreateResponse.java
 ┃ ┃ ┃ ┃ ┣ TeamGetResponse.java
 ┃ ┃ ┃ ┃ ┣ TeamGetUserRankingResponse.java
 ┃ ┃ ┃ ┃ ┣ TeamInfoDetailResponse.java
 ┃ ┃ ┃ ┃ ┗ TeamInfoResponse.java
 ┃ ┃ ┣ entity
 ┃ ┃ ┃ ┣ Team.java
 ┃ ┃ ┃ ┣ TeamUser.java
 ┃ ┃ ┃ ┗ TeamUserId.java
 ┃ ┃ ┣ enums
 ┃ ┃ ┃ ┗ TeamUserRole.java
 ┃ ┃ ┣ exception
 ┃ ┃ ┃ ┣ TeamCustomException.java
 ┃ ┃ ┃ ┗ TeamExceptionCode.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┣ TeamRepository.java
 ┃ ┃ ┃ ┗ TeamUserRepository.java
 ┃ ┃ ┣ response
 ┃ ┃ ┃ ┗ TeamResponseCode.java
 ┃ ┃ ┗ service
 ┃ ┃ ┃ ┗ TeamService.java
 ┃ ┗ user
 ┃ ┃ ┣ annotation
 ┃ ┃ ┃ ┗ UserSkillEnum.java
 ┃ ┃ ┣ controller
 ┃ ┃ ┃ ┣ AuthController.java
 ┃ ┃ ┃ ┗ UserController.java
 ┃ ┃ ┣ dto
 ┃ ┃ ┃ ┣ request
 ┃ ┃ ┃ ┃ ┣ UsernameUpdateRequest.java
 ┃ ┃ ┃ ┃ ┗ UserSkillsUpdateRequest.java
 ┃ ┃ ┃ ┗ response
 ┃ ┃ ┃ ┃ ┣ SkillResponse.java
 ┃ ┃ ┃ ┃ ┣ UserBoardsResponse.java
 ┃ ┃ ┃ ┃ ┣ UserCommentsResponse.java
 ┃ ┃ ┃ ┃ ┣ UserDetailResponse.java
 ┃ ┃ ┃ ┃ ┣ UserInfoResponse.java
 ┃ ┃ ┃ ┃ ┣ UserInvitationsResponse.java
 ┃ ┃ ┃ ┃ ┣ UserQuizzesResponse.java
 ┃ ┃ ┃ ┃ ┣ UserRankingResponse.java
 ┃ ┃ ┃ ┃ ┣ UserScoreResponse.java
 ┃ ┃ ┃ ┃ ┣ UserSkillResponse.java
 ┃ ┃ ┃ ┃ ┣ UserTeamsResponse.java
 ┃ ┃ ┃ ┃ ┗ WeekScoreResponse.java
 ┃ ┃ ┣ entity
 ┃ ┃ ┃ ┗ User.java
 ┃ ┃ ┣ enums
 ┃ ┃ ┃ ┣ OauthType.java
 ┃ ┃ ┃ ┗ UserRole.java
 ┃ ┃ ┣ exception
 ┃ ┃ ┃ ┣ UserCustomException.java
 ┃ ┃ ┃ ┗ UserExceptionCode.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┗ UserRepository.java
 ┃ ┃ ┣ response
 ┃ ┃ ┃ ┗ UserResponseCode.java
 ┃ ┃ ┣ service
 ┃ ┃ ┃ ┣ AuthService.java
 ┃ ┃ ┃ ┗ UserService.java
 ┃ ┃ ┗ validator
 ┃ ┃ ┃ ┗ UserSkillValidator.java
 ┣ global
 ┃ ┣ advice
 ┃ ┃ ┗ GlobalExceptionHandler.java
 ┃ ┣ annotation
 ┃ ┃ ┗ AuthUser.java
 ┃ ┣ cors
 ┃ ┃ ┗ WebMvcConfig.java
 ┃ ┣ entity
 ┃ ┃ ┗ BaseTimeEntity.java
 ┃ ┣ exception
 ┃ ┃ ┣ CustomException.java
 ┃ ┃ ┗ GlobalExceptionCode.java
 ┃ ┣ jpa
 ┃ ┃ ┗ JpaQueryConfig.java
 ┃ ┣ jwt
 ┃ ┃ ┣ dto
 ┃ ┃ ┃ ┗ TokenSet.java
 ┃ ┃ ┣ exception
 ┃ ┃ ┃ ┣ JwtCustomException.java
 ┃ ┃ ┃ ┗ JwtExceptionCode.java
 ┃ ┃ ┣ filter
 ┃ ┃ ┃ ┣ JwtAuthorizationFilter.java
 ┃ ┃ ┃ ┗ JwtExceptionHandlerFilter.java
 ┃ ┃ ┗ service
 ┃ ┃ ┃ ┗ JwtService.java
 ┃ ┣ oauth
 ┃ ┃ ┣ handler
 ┃ ┃ ┃ ┣ OAuth2LoginFailureHandler.java
 ┃ ┃ ┃ ┗ OAuth2LoginSuccessHandler.java
 ┃ ┃ ┣ repository
 ┃ ┃ ┃ ┗ CookieOAuth2RequestRepository.java
 ┃ ┃ ┣ service
 ┃ ┃ ┃ ┗ CustomOAuth2UserService.java
 ┃ ┃ ┣ userinfo
 ┃ ┃ ┃ ┣ GithubUserInfo.java
 ┃ ┃ ┃ ┣ GoogleUserInfo.java
 ┃ ┃ ┃ ┗ OAuth2UserInfo.java
 ┃ ┃ ┣ CookieUtil.java
 ┃ ┃ ┗ OAuth2Attributes.java
 ┃ ┣ redis
 ┃ ┃ ┣ RedisConfig.java
 ┃ ┃ ┗ RedisService.java
 ┃ ┣ response
 ┃ ┃ ┣ CommonResponseDto.java
 ┃ ┃ ┣ GlobalResponseCode.java
 ┃ ┃ ┗ ResponseCode.java
 ┃ ┣ scheduler
 ┃ ┃ ┗ Scheduler.java
 ┃ ┣ security
 ┃ ┃ ┣ UserDetailsImpl.java
 ┃ ┃ ┣ UserDetailsServiceImpl.java
 ┃ ┃ ┗ WebSecurityConfig.java
 ┃ ┗ swagger
 ┃ ┃ ┗ SwaggerConfig.java
 ┗ DevQuizApplication.java

기능 구현에 대한 기술

🐾 Chat GPT API

🐾 Spring Batch

🐾 Docker Compose

🐾 Jenkins

🐾 Trouble Shooting

About

SpartaCodingClub 최종프로젝트 A6조 DevQuiz입니다.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5