/BE-04-WadizLove

[히히 팀] 와디즈 클론 코딩

Primary LanguageJava

wadizlove (1)-min

WadizLove

백엔드 히히팀 wadiz 클론코딩


👟 프로젝트 소개
💗 팀 소개
🛠 기술 협업 tool 소개
🍰 ERD
🍓 Architecture
🥝 프로젝트 패키지 구조
🍉 프로젝트 실행 방법

👟 프로젝트 소개

image

크라우드 펀딩 플랫폼 서비스인 Wadiz


💸 크라우드 펀딩이란(Crowd funding) ?

자금이 부족하거나 없는 사람들이 프로젝트를 인터넷에 공개하고 목표 금액과 모금 기간을 정하여 익명의 다수(crowd)로부터 투자를 받는 행위를 일컫는다.


🧑‍🤝‍🧑 서포터와 메이커

  • 사용자는 서포터와 메이커 두가지의 역할로서 와디즈 서비스에 참여할 수 있다.

  • 메이커는 프로젝트를 개설하여 펀딩 하고자 하는 리워드를 등록하고, 펀딩 목표 금액, 프로젝트 마감일자 등을 등록하여 프로젝트를 런칭한다.

  • 서포터는 메이커가 런칭한 프로젝트의 원하는 리워드를 선택하여 펀딩에 참여한다.

  • 펀딩이 프로젝트 마감 일자 전까지 일정 금액 이상을 달성하면 주문이 정상 진행된다.


👑 와디즈 펀딩 서비스 절차

1. 원하는 프로잭트 click !

2. 주문하고자 하는 리워드 선택

3. 결제 예약

4. 프로젝트 마감 후 & 펀딩 목표 금액 달성 시 주문 정상 진행


[프로젝트 목표]

와디즈 펀딩 서비스를 클론 코딩하여 스프링,jpa를 적용한다.

[프로젝트 기간]

프로젝트 기간 : 2023/0828 ~ 2023/09/22


🍋 프로젝트 팀 노션

https://www.notion.so/Team-6535d86acd9c4843b5f06d4d1d4375de


💗 팀 소개

Product Owner Scrum Master Tech Leader Mentor Sub Mentor
신예진 조재현 최준혁 히히 유민환

🛠 기술 협업 tool 소개

🛠 기술 스택 🛠

✏️ 문서/협업 ✏️

🍓 Architecture

new wadiz 아키텍처

🍰 ERD

image

🔗ERD 보러가기

🥝 프로젝트 패키지 구조

패키지 구조 확인하기
├── main
│   ├── java
│   │   └── com
│   │       └── prgrms
│   │           └── wadiz
│   │               ├── WadizApplication.java
│   │               ├── domain
│   │               │   ├── BaseEntity.java
│   │               │   ├── funding
│   │               │   │   ├── FundingCategory.java
│   │               │   │   ├── FundingStatus.java
│   │               │   │   ├── controller
│   │               │   │   │   └── FundingController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── FundingCreateRequestDTO.java
│   │               │   │   │   │   └── FundingUpdateRequestDTO.java
│   │               │   │   │   └── response
│   │               │   │   │       └── FundingResponseDTO.java
│   │               │   │   ├── entity
│   │               │   │   │   └── Funding.java
│   │               │   │   ├── repository
│   │               │   │   │   └── FundingRepository.java
│   │               │   │   └── service
│   │               │   │       └── FundingService.java
│   │               │   ├── maker
│   │               │   │   ├── MakerStatus.java
│   │               │   │   ├── controller
│   │               │   │   │   └── MakerController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── MakerServiceDTO.java
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── MakerCreateRequestDTO.java
│   │               │   │   │   │   └── MakerUpdateRequestDTO.java
│   │               │   │   │   └── response
│   │               │   │   │       └── MakerResponseDTO.java
│   │               │   │   ├── entity
│   │               │   │   │   └── Maker.java
│   │               │   │   ├── respository
│   │               │   │   │   └── MakerRepository.java
│   │               │   │   └── service
│   │               │   │       └── MakerService.java
│   │               │   ├── order
│   │               │   │   ├── OrderStatus.java
│   │               │   │   ├── controller
│   │               │   │   │   └── OrderController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   └── OrderCreateRequestDTO.java
│   │               │   │   │   └── response
│   │               │   │   │       └── OrderResponseDTO.java
│   │               │   │   ├── entity
│   │               │   │   │   └── Order.java
│   │               │   │   ├── repository
│   │               │   │   │   └── OrderRepository.java
│   │               │   │   └── service
│   │               │   │       └── OrderService.java
│   │               │   ├── orderReward
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   └── OrderRewardCreateRequestDTO.java
│   │               │   │   │   └── response
│   │               │   │   │       └── OrderRewardResponseDTO.java
│   │               │   │   └── entity
│   │               │   │       └── OrderReward.java
│   │               │   ├── post
│   │               │   │   ├── controller
│   │               │   │   │   └── PostController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── PostCreateRequestDTO.java
│   │               │   │   │   │   └── PostUpdateRequestDTO.java
│   │               │   │   │   └── response
│   │               │   │   │       └── PostResponseDTO.java
│   │               │   │   ├── entity
│   │               │   │   │   └── Post.java
│   │               │   │   ├── repository
│   │               │   │   │   └── PostRepository.java
│   │               │   │   └── service
│   │               │   │       └── PostService.java
│   │               │   ├── project
│   │               │   │   ├── ProjectStatus.java
│   │               │   │   ├── condition
│   │               │   │   │   └── ProjectSearchCondition.java
│   │               │   │   ├── controller
│   │               │   │   │   └── ProjectController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── ProjectServiceDTO.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── PagingDTO.java
│   │               │   │   │       ├── ProjectPageResponseDTO.java
│   │               │   │   │       ├── ProjectResponseDTO.java
│   │               │   │   │       └── ProjectSummaryResponseDTO.java
│   │               │   │   ├── entity
│   │               │   │   │   └── Project.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── ProjectRepository.java
│   │               │   │   │   ├── ProjectRepositoryCustom.java
│   │               │   │   │   └── ProjectRepositoryImpl.java
│   │               │   │   └── service
│   │               │   │       └── ProjectUseCase.java
│   │               │   ├── reward
│   │               │   │   ├── RewardStatus.java
│   │               │   │   ├── RewardType.java
│   │               │   │   ├── controller
│   │               │   │   │   └── RewardController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── RewardCreateRequestDTO.java
│   │               │   │   │   │   └── RewardUpdateRequestDTO.java
│   │               │   │   │   └── response
│   │               │   │   │       └── RewardResponseDTO.java
│   │               │   │   ├── entity
│   │               │   │   │   └── Reward.java
│   │               │   │   ├── repository
│   │               │   │   │   └── RewardRepository.java
│   │               │   │   └── service
│   │               │   │       └── RewardService.java
│   │               │   └── supporter
│   │               │       ├── SupporterStatus.java
│   │               │       ├── controller
│   │               │       │   └── SupporterController.java
│   │               │       ├── dto
│   │               │       │   ├── request
│   │               │       │   │   ├── SupporterCreateRequestDTO.java
│   │               │       │   │   └── SupporterUpdateRequestDTO.java
│   │               │       │   └── response
│   │               │       │       └── SupporterResponseDTO.java
│   │               │       ├── entity
│   │               │       │   └── Supporter.java
│   │               │       ├── repository
│   │               │       │   └── SupporterRepository.java
│   │               │       └── service
│   │               │           └── SupporterService.java
│   │               └── global
│   │                   ├── annotation
│   │                   │   ├── ApiErrorCodeExample.java
│   │                   │   ├── EnumValidator.java
│   │                   │   └── ValidEnum.java
│   │                   ├── config
│   │                   │   ├── CachingConfig.java
│   │                   │   ├── ExampleHolder.java
│   │                   │   ├── JpaAuditingConfig.java
│   │                   │   ├── QueryDSLConfig.java
│   │                   │   └── SwaggerConfig.java
│   │                   └── util
│   │                       ├── exception
│   │                       │   ├── BaseException.java
│   │                       │   ├── ErrorCode.java
│   │                       │   └── GlobalExceptionHandler.java
│   │                       └── resTemplate
│   │                           ├── CommonCode.java
│   │                           ├── ListResult.java
│   │                           ├── ResponseFactory.java
│   │                           ├── ResponseTemplate.java
│   │                           └── SingleResult.java
│   └── resources
│       ├── application-dev.yml
│       ├── application-local.yml
│       └── application.yml
└── test
    └── java
        └── com
            └── prgrms
                └── wadiz
                    ├── WadizApplicationTests.java
                    └── domain
                        ├── funding
                        │   └── service
                        │       └── FundingServiceTest.java
                        ├── maker
                        │   ├── controller
                        │   │   └── MakerControllerTest.java
                        │   └── service
                        │       └── MakerServiceTest.java
                        ├── order
                        │   ├── controller
                        │   │   └── OrderControllerTest.java
                        │   └── service
                        │       └── OrderServiceTest.java
                        ├── post
                        │   └── service
                        │       └── PostServiceTest.java
                        ├── reward
                        │   ├── controller
                        │   │   └── RewardControllerTest.java
                        │   └── service
                        │       └── RewardServiceTest.java
                        └── supporter
                            ├── controller
                            │   └── SupporterControllerTest.java
                            └── service
                                └── SupporterServiceTest.java


🍉 프로젝트 실행 방법

using Github Project

  1. github에서 프로젝트를 다운받는다.

https://github.com/prgrms-be-devcourse/BE-04-WadizLove.git

  1. bootjar를 실행한다.

  2. Query DSL 컴파일한다.

  3. 터미널에서 도커 컴포즈 빌드 명령어를 입력한다.

    docker-compose up --build