Skip to content

Latest commit

 

History

History
466 lines (435 loc) · 30.9 KB

README.md

File metadata and controls

466 lines (435 loc) · 30.9 KB

IceButler_Server

냉장고를 지켜주는 나만의 집사😺


Tech Stack

Backend

JWT

DB

CI/CD

Deploy

Develop Tool



Project Architecture

FINAL ARCHITECTURE

스크린샷 2023-06-07 오전 1 09 2

CI/CD

image 370

AWS Lambda

image 340

AWS SQS

image 397


Project Structure

Details
├── Dockerfile
├── build.gradle
├── gradle
└── src
    ├── main
       ├── java
          └── com
              └── example
                  └── icebutler_server
                      ├── IceButlerServerApplication.java
                      ├── admin
                         ├── controller
                            ├── AdminController.java
                            └── AdminExceptionController.java
                         ├── dto
                            ├── assembler
                               └── AdminAssembler.java
                            ├── condition
                               └── SearchCond.java
                            ├── request
                               ├── JoinRequest.java
                               ├── LoginRequest.java
                               ├── ModifyFoodRequest.java
                               ├── RemoveFoodRequest.java
                               ├── RemoveFoodsRequest.java
                               └── WithDrawRequest.java
                            └── response
                                ├── AdminResponse.java
                                ├── LoginResponse.java
                                ├── LogoutResponse.java
                                ├── PostAdminRes.java
                                ├── SearchFoodsResponse.java
                                └── UserResponse.java
                         ├── entity
                            └── Admin.java
                         ├── exception
                            ├── AdminAnnotationIsNowhereException.java
                            ├── AdminNotFoundException.java
                            ├── AlreadyExistEmailException.java
                            ├── FoodNotFoundException.java
                            └── PasswordNotMatchException.java
                         ├── repository
                            ├── AdminRepository.java
                            ├── AdminRepositoryQuerydsl.java
                            └── AdminRepositoryQuerydslImpl.java
                         └── service
                             ├── AdminService.java
                             └── AdminServiceImpl.java
                      ├── alarm
                         ├── dto
                            ├── FcmMessage.java
                            ├── Message.java
                            ├── Notification.java
                            └── assembler
                                └── NotificationAssembler.java
                         ├── entity
                            └── PushNotification.java
                         ├── repository
                            └── PushNotificationRepository.java
                         └── service
                             ├── NotificationService.java
                             └── NotificationServiceImpl.java
                      ├── cart
                         ├── controller
                            ├── CartController.java
                            ├── CartExceptionController.java
                            └── MultiCartController.java
                         ├── dto
                            └── cart
                                ├── assembler
                                   ├── CartAssembler.java
                                   ├── CartFoodAssembler.java
                                   └── MultiCartFoodAssembler.java
                                ├── request
                                   ├── AddFoodRequest.java
                                   ├── AddFoodToCartRequest.java
                                   └── RemoveFoodFromCartRequest.java
                                └── response
                                    └── CartResponse.java
                         ├── entity
                            ├── cart
                               ├── Cart.java
                               └── CartFood.java
                            └── multiCart
                                ├── MultiCart.java
                                └── MultiCartFood.java
                         ├── exception
                            ├── CartFoodNotFoundException.java
                            └── CartNotFoundException.java
                         ├── repository
                            ├── cart
                               ├── CartFoodQuerydslRepository.java
                               ├── CartFoodQuerydslRepositoryImpl.java
                               ├── CartFoodRepository.java
                               └── CartRepository.java
                            └── multiCart
                                ├── MultiCartFoodQuerydslRepository.java
                                ├── MultiCartFoodQuerydslRepositoryImpl.java
                                ├── MultiCartFoodRepository.java
                                └── MultiCartRepository.java
                         └── service
                             ├── CartService.java
                             ├── CartServiceImpl.java
                             └── MultiCartServiceImpl.java
                      ├── food
                         ├── controller
                            ├── FoodController.java
                            └── FoodExceptionController.java
                         ├── dto
                            ├── assembler
                               └── FoodAssembler.java
                            ├── request
                               └── FoodReq.java
                            └── response
                                ├── BarcodeFoodRes.java
                                ├── FoodRes.java
                                └── FoodResponse.java
                         ├── entity
                            ├── Food.java
                            ├── FoodCategory.java
                            └── FoodDeleteStatus.java
                         ├── exception
                            ├── BarcodeFoodNotFoundException.java
                            ├── DuplicateFoodNameException.java
                            ├── FoodCategoryNotFoundException.java
                            ├── FoodDeleteStatusNotFoundException.java
                            └── FoodNameNotFoundException.java
                         ├── repository
                            └── FoodRepository.java
                         └── service
                             ├── FoodService.java
                             └── FoodServiceImpl.java
                      ├── fridge
                         ├── controller
                            ├── FridgeController.java
                            ├── FridgeExceptionController.java
                            └── MultiFridgeController.java
                         ├── dto
                            ├── fridge
                               ├── assembler
                                  ├── FridgeAssembler.java
                                  ├── FridgeFoodAssembler.java
                                  └── FridgeUtils.java
                               ├── request
                                  ├── DeleteFridgeFoodsReq.java
                                  ├── FridgeFoodReq.java
                                  ├── FridgeFoodsReq.java
                                  ├── FridgeModifyMembersReq.java
                                  ├── FridgeModifyReq.java
                                  ├── FridgeRegisterMembersReq.java
                                  └── FridgeRegisterReq.java
                               └── response
                                   ├── FridgeDiscardRes.java
                                   ├── FridgeFoodRes.java
                                   ├── FridgeFoodStatistics.java
                                   ├── FridgeFoodsRes.java
                                   ├── FridgeFoodsStatistics.java
                                   ├── FridgeMainRes.java
                                   ├── FridgeRes.java
                                   ├── FridgeUserMainRes.java
                                   ├── FridgeUserRes.java
                                   ├── FridgeUsersRes.java
                                   ├── GetFridgesMainRes.java
                                   ├── MultiFridgeRes.java
                                   ├── RecipeFridgeFoodListRes.java
                                   ├── RecipeFridgeFoodListsRes.java
                                   ├── SearchFoodRes.java
                                   ├── SearchFridgeFoodRes.java
                                   ├── SelectFridgeRes.java
                                   ├── SelectFridgesMainRes.java
                                   ├── UpdateMembersRes.java
                                   └── UpdateMultiMemberRes.java
                            └── multiFridge
                                └── assembler
                                    ├── MultiFridgeAssembler.java
                                    └── MultiFridgeFoodAssembler.java
                         ├── entity
                            ├── fridge
                               ├── Fridge.java
                               ├── FridgeFood.java
                               └── FridgeUser.java
                            └── multiFridge
                                ├── MultiFridge.java
                                ├── MultiFridgeFood.java
                                └── MultiFridgeUser.java
                         ├── exception
                            ├── FridgeFoodNotFoundException.java
                            ├── FridgeNameEmptyException.java
                            ├── FridgeNotFoundException.java
                            ├── FridgeRemoveException.java
                            ├── FridgeTypeNotFoundException.java
                            ├── FridgeUserNotFoundException.java
                            ├── InvalidFridgeUserRoleException.java
                            └── PermissionDeniedException.java
                         ├── repository
                            ├── fridge
                               ├── FridgeFood
                                  ├── FridgeFoodCustom.java
                                  ├── FridgeFoodRepository.java
                                  └── FridgeFoodRepositoryImpl.java
                               ├── FridgeRepository.java
                               └── FridgeUserRepository.java
                            └── multiFridge
                                ├── MultiFridgeFood
                                   ├── MultiFridgeFoodCustom.java
                                   ├── MultiFridgeFoodRepository.java
                                   └── MultiFridgeFoodRepositoryImpl.java
                                ├── MultiFridgeRepository.java
                                └── MultiFridgeUserRepository.java
                         └── service
                             ├── FridgeService.java
                             ├── FridgeServiceImpl.java
                             └── MultiFridgeServiceImpl.java
                      ├── global
                         ├── config
                            ├── AwsSqsConfig.java
                            ├── JasyptConfig.java
                            ├── QueryDslConfig.java
                            ├── RedisConfig.java
                            └── WebConfig.java
                         ├── controller
                            └── ExceptionController.java
                         ├── dto
                            └── response
                                └── ResponseCustom.java
                         ├── entity
                            ├── BaseEntity.java
                            └── FridgeRole.java
                         ├── entityListener
                            ├── CartEntityListener.java
                            ├── FoodEntityListener.java
                            ├── FridgeEntityListener.java
                            ├── FridgeUserEntityListener.java
                            ├── MultiCartEntityListener.java
                            ├── MultiFridgeEntityListener.java
                            ├── MultiFridgeUserEntityListener.java
                            └── UserEntityListener.java
                         ├── feign
                            ├── dto
                               ├── AdminReq.java
                               ├── FoodReq.java
                               └── UserReq.java
                            ├── event
                               ├── DeleteUserEvent.java
                               ├── FoodEvent.java
                               ├── UpdateFoodEvent.java
                               ├── UpdateUserEvent.java
                               └── UserEvent.java
                            ├── feignClient
                               └── RecipeServerClient.java
                            ├── handler
                               ├── RecipeServerEventHandler.java
                               └── RecipeServerEventHandlerImpl.java
                            └── publisher
                                ├── RecipeServerEventPublisher.java
                                └── RecipeServerEventPublisherImpl.java
                         ├── resolver
                            ├── Admin.java
                            ├── AdminLoginStatus.java
                            ├── AdminResolver.java
                            ├── Auth.java
                            ├── IsAdminLogin.java
                            ├── IsLogin.java
                            ├── LoginResolver.java
                            └── LoginStatus.java
                         ├── sqs
                            ├── AmazonSQSSender.java
                            ├── AmazonSQSSenderImpl.java
                            ├── AwsSqsListener.java
                            └── FoodData.java
                         └── util
                             ├── AppleUtils.java
                             ├── AwsS3ImageUrlUtil.java
                             ├── BeanUtils.java
                             ├── Constant.java
                             ├── TokenUtils.java
                             └── redis
                                 ├── RedisTemplateService.java
                                 ├── RedisTemplateServiceImpl.java
                                 ├── RedisUtils.java
                                 └── SyncData.java
                      └── user
                          ├── controller
                             ├── UserAuthController.java
                             ├── UserController.java
                             └── UserExceptionController.java
                          ├── dto
                             ├── LoginUserReq.java
                             ├── assembler
                                └── UserAssembler.java
                             ├── request
                                ├── PatchProfileReq.java
                                ├── PostNicknameReq.java
                                ├── PostUserReq.java
                                └── UserAuthTokenReq.java
                             └── response
                                 ├── IsEnableRes.java
                                 ├── MyNotificationRes.java
                                 ├── MyProfileRes.java
                                 ├── NickNameRes.java
                                 ├── PostNickNameRes.java
                                 └── PostUserRes.java
                          ├── entity
                             ├── Provider.java
                             └── User.java
                          ├── exception
                             ├── AccessDeniedUserException.java
                             ├── AlreadyExistNickNameException.java
                             ├── AlreadyWithdrawUserException.java
                             ├── AuthAnnotationIsNowhereException.java
                             ├── CannotDeleteFridgeException.java
                             ├── InvalidUserNickNameException.java
                             ├── InvalidUserProfileImgKeyException.java
                             ├── ProviderMissingValueException.java
                             ├── TokenExpirationException.java
                             ├── UserEmailMissingValueException.java
                             ├── UserNicknameNotFoundException.java
                             └── UserNotFoundException.java
                          ├── repository
                             └── UserRepository.java
                          └── service
                              ├── UserService.java
                              └── UserServiceImpl.java
       └── resources
           ├── application.yml
    └── test
        └── java
            └── com
                └── example
                    └── icebutler_server
                        └── IceButlerServerApplicationTests.java



DB

MAIN_SERVER

image


RECIPE_SERVER

image





Commit/PR Convention

Commit

#1 feat: 일정 등록 API 추가
  • #이슈번호 타입: 커밋 설명

Pull Request

[feature/1-create-calender] 일정 등록
  • [브랜치명] 설명

Branch Strategy

  • main
    • 배포 이력 관리 목적
  • develop
    • feature 병합용 브랜치
    • 배포 전 병합 브랜치
  • feature
    • develop 브랜치를 베이스로 기능별로 feature 브랜치 생성해 개발
  • test
    • 테스트가 필요한 코드용 브랜치
  • fix
    • 배포 후 버그 발생 시 버그 수정

  • feature branch의 경우, 기능명/이슈번호-기능설명 형태로 작성
feature/7-desserts-patchDessert

MSA (Micro Service Architecture)

MAIN_SERVER RECIPE_SERVER CHAT_GPT_WORDS CHAT_GPT_CATEGORY GET_PRESIGNED_S3_URL
main 서버 레시피 서버 ChatGPT 활용 대표단어 추출 Lambda ChatGPT 활용 카테고리 추출 Lambda PresignedURL Lambda

API

👉 CLICK HERE

Member

김민기 박서연 박소정 웃쿠
DB &
Backend Developer
PM &
Backend Developer
PM &
Backend Developer
QA &
Backend Developer
이승학 이찬영 장채은 냉집사
Framework Leader &
Backend Developer
Architect &
Backend Developer
DB &
Backend Developer
ICE BUTLER