프로젝트 진행 기간
2023.10.12 ~ 2023.12.04
동료가 생각하는 나의 모습을 알고 싶은 사람들을 위해 피어리뷰
를 효과적으로 관리할 수 있는 서비스입니다!
데브코스내에서 피어리뷰를 진행할 때 구글폼에 의존하면서 생기는 문제점을 해결하고자 했습니다.
개별 응답을 수집하고 종합하는 데 많은 시간이 소요되며 응답 유무를 확인하기 어렵고 또한, 주관식 응답을 정제하는 데 시간이 오래 걸리는 문제가 있습니다.
리뷰 결과를 여러 매체에 의존하지 않고 하나의 플랫폼으로 효과적으로 관리하고자 했습니다.
리뷰 결과를 시각적으로 한눈에 확인할 수 있도록 했으며 PDF 저장 기능을 도입해 결과를 개인적으로 소장할 수 있도록 했습니다.
실제 사용자를 유치하고 서비스를 지속 운영하고자 했습니다.
데브코스 인원들을 타겟으로 실사용자를 유치하고 테스터 경험을 통해 피드백 반영 후 안정적이며 지속적인 운영을 목표로 했습니다.
피어 리뷰에 적합한 다양한 질문 형식을 제공합니다.
리뷰 결과에 대한 통계 및 시각적 정보를 제공합니다.
수집된 설문 결과들을 저장해서 모아봅니다.
피어 리뷰 중 주관식 답변의 부정적인 표현을 정제합니다.
피어 리뷰의 결과를 대상자 별로 자동 분류합니다.
Product Owner | Developer | Scrum Master |
---|---|---|
장수연 | 신범철 | 김주웅 |
리뷰 결과 도메인 유저, 인증 도메인 |
리뷰 답변 도메인 Cloud |
리뷰 설문 도메인 |
🦸 FE 히어로들
종류 | 기술 스택 |
---|---|
🚀 Develop Tools | |
🛠️ 클라우드 |
✨ 이벤트 스토밍
Miro를 통한 도메인 분석 및 플로우 차트 작성
펼치기/접기
.
├── ReplyTarget
│ ├── application
│ │ └── ReplyTargetService.java
│ ├── domain
│ │ └── ReplyTarget.java
│ ├── dto
│ │ ├── request
│ │ │ ├── CreateReplyTargetRequest.java
│ │ │ └── UpdateReplyTargetRequest.java
│ │ └── response
│ │ └── ReplyTargetResponse.java
│ └── repository
│ ├── ReplyTargetCustomRepository.java
│ ├── ReplyTargetCustomRepositoryImpl.java
│ └── ReplyTargetRepository.java
├── ReviewRangerApplication.java
├── auth
│ ├── api
│ │ └── AuthController.java
│ ├── application
│ │ ├── AuthService.java
│ │ └── CustomUserDetailsService.java
│ ├── domain
│ │ ├── RefreshToken.java
│ │ └── UserPrincipal.java
│ ├── dto
│ │ ├── JoinRequest.java
│ │ ├── LoginRequest.java
│ │ ├── LoginResponse.java
│ │ ├── ValidateEmailRequest.java
│ │ └── ValidateNameRequest.java
│ └── repository
│ └── RefreshTokenRepository.java
├── common
│ ├── config
│ │ ├── AsyncConfig.java
│ │ ├── JasyptConfig.java
│ │ ├── OpenAIConfig.java
│ │ ├── QueryDslConfig.java
│ │ ├── RedisConfig.java
│ │ ├── S3Config.java
│ │ ├── SecurityConfig.java
│ │ └── SwaggerConfig.java
│ ├── entity
│ │ └── BaseEntity.java
│ ├── exception
│ │ ├── ErrorCode.java
│ │ ├── GlobalExceptionHandler.java
│ │ └── RangerException.java
│ ├── image
│ │ └── infrastructure
│ │ ├── ImageManager.java
│ │ └── S3manager.java
│ ├── jwt
│ │ ├── ExceptionHandlerFilter.java
│ │ ├── JwtFilter.java
│ │ └── JwtTokenProvider.java
│ ├── openai
│ │ ├── Prompt.java
│ │ ├── api
│ │ │ └── OpenAIController.java
│ │ ├── application
│ │ │ └── OpenAIService.java
│ │ ├── constant
│ │ │ └── Command.java
│ │ └── dto
│ │ └── request
│ │ ├── CleanRepliesRequest.java
│ │ ├── Message.java
│ │ └── OpenAIRequest.java
│ ├── redis
│ │ ├── RedisProperties.java
│ │ └── RedisUtil.java
│ ├── regex
│ │ └── UserRegex.java
│ ├── response
│ │ └── RangerResponse.java
│ └── slack
│ ├── SlackConstant.java
│ ├── SlackController.java
│ └── SlackService.java
├── finalReviewResult
│ ├── api
│ │ └── FinalReviewResultController.java
│ ├── application
│ │ └── FinalReviewResultService.java
│ ├── domain
│ │ ├── AnswerSupplier.java
│ │ ├── FinalQuestion.java
│ │ ├── FinalQuestionType.java
│ │ ├── FinalReviewResult.java
│ │ ├── FinalReviewResultAnswer.java
│ │ ├── FinalReviewResultAnswerDropdown.java
│ │ ├── FinalReviewResultAnswerHexStat.java
│ │ ├── FinalReviewResultAnswerObjects.java
│ │ ├── FinalReviewResultAnswerRating.java
│ │ ├── FinalReviewResultAnswerSubject.java
│ │ └── Hexstat.java
│ ├── dto
│ │ ├── CheckFinalResultStatus.java
│ │ ├── CreateFinalReplyRequest.java
│ │ ├── CreateFinalReviewRequest.java
│ │ ├── CreateFinalReviewResponse.java
│ │ ├── FinalReviewResultListResponse.java
│ │ ├── GetFinalReviewAnswerResponse.java
│ │ ├── GetFinalReviewResultResponse.java
│ │ └── UpdateAnswerOfSubject.java
│ └── repository
│ ├── DropdownTypeRepository.java
│ ├── FinalReviewResultCustomRepository.java
│ ├── FinalReviewResultCustomRepositoryImpl.java
│ ├── FinalReviewResultRepository.java
│ ├── HexstatTypeRepository.java
│ ├── ObjectTypeRepository.java
│ ├── RatingTypeRepository.java
│ └── SubjectTypeRepository.java
├── participation
│ ├── api
│ │ └── ParticipationController.java
│ ├── application
│ │ └── ParticipationService.java
│ ├── domain
│ │ ├── Participation.java
│ │ └── ReviewStatus.java
│ ├── dto
│ │ ├── request
│ │ │ ├── SubmitParticipationRequest.java
│ │ │ └── UpdateParticipationRequest.java
│ │ └── response
│ │ ├── GetParticipationResponse.java
│ │ ├── ParticipationResponse.java
│ │ ├── ReceiverResponse.java
│ │ └── ResponserResponse.java
│ └── repository
│ ├── ParticipationCustomRepository.java
│ ├── ParticipationCustomRepositoryImpl.java
│ └── ParticipationRepository.java
├── question
│ ├── api
│ │ └── QuestionController.java
│ ├── application
│ │ └── QuestionService.java
│ ├── domain
│ │ ├── Question.java
│ │ ├── QuestionOption.java
│ │ └── QuestionType.java
│ ├── dto
│ │ ├── request
│ │ │ ├── CreateQuestionOptionRequest.java
│ │ │ └── CreateQuestionRequest.java
│ │ └── response
│ │ ├── GetQuestionOptionResponse.java
│ │ └── GetQuestionResponse.java
│ └── repository
│ ├── QuestionOptionRepository.java
│ └── QuestionRepository.java
├── reply
│ ├── api
│ │ └── ReplyRestController.java
│ ├── application
│ │ └── ReplyService.java
│ ├── domain
│ │ └── Reply.java
│ ├── dto
│ │ ├── request
│ │ │ ├── CreateReplyRequest.java
│ │ │ └── UpdateReplyRequest.java
│ │ └── response
│ │ └── ReplyResponse.java
│ └── repository
│ └── ReplyRepository.java
├── review
│ ├── api
│ │ └── ReviewController.java
│ ├── application
│ │ └── ReviewService.java
│ ├── domain
│ │ ├── Review.java
│ │ └── ReviewType.java
│ ├── dto
│ │ ├── request
│ │ │ └── CreateReviewRequest.java
│ │ └── response
│ │ ├── GetReviewDetailResponse.java
│ │ ├── GetReviewResponse.java
│ │ └── ReviewResponse.java
│ └── repository
│ ├── ReviewCustomRepository.java
│ ├── ReviewCustomRepositoryImpl.java
│ └── ReviewRepository.java
└── user
├── api
│ └── UserController.java
├── application
│ └── UserService.java
├── domain
│ └── User.java
├── dto
│ ├── GetUserResponse.java
│ ├── UpdateNameRequest.java
│ ├── UpdatePasswordRequest.java
│ ├── UserInfoResponse.java
│ └── UserResponse.java
└── repository
└── UserRepository.java