Skip to content

TeamAraBook/AraBook-Server

Repository files navigation

📚 AraBook

📒 Backend Developer

김성은 @sung-silver
성은
역할 - CI/CD 구축
- 인증 관련 API: 소셜 로그인, 회원 탈퇴
- 책 카테고리 관련 API: 온보딩 대분류 카테고리 조회, 온보딩 소분류 카테고리 조회
- 책 기록 관련 API: 책 기록 목록 조회, 책 기록 수정, 책 기록 생성, 책 기록 조회, 책 기록 삭제
- 추천 도서 API: 이 달의 베스트 셀러 조회, AI 추천 도서
- 책 조회 API: 책 상세보기, 책 검색


🔑 Key Features

아라북 주요 기능 1
아라북 주요 기능 2
아라북 주요 기능 3



💻 Development Tech

Java






📚 ERD

아라북 ERD

🛠️ System Architecture

아라북 시스템 아키텍처



📂 Project Structure

📦 AraBook-Server
├─ .github
│  ├─ ISSUE_TEMPLATE
│  │  └─ feature_request.md
│  ├─ pull_request_template.md
│  ├─ release-drafter-config.yml
│  ├─ script
│  │  └─ pre-commit
│  └─ workflows
│     ├─ dev-CI.yml
│     ├─ dev-CICD.yml
│     ├─ prod-CI.yml
│     ├─ prod-CICD.yml
│     └─ release-drafter.yml
├─ .gitignore
├─ Dockerfile
├─ HELP.md
├─ README.md
├─ build.gradle
├─ gradle
│  └─ wrapper
│     ├─ gradle-wrapper.jar
│     └─ gradle-wrapper.properties
├─ gradlew
├─ gradlew.bat
├─ settings.gradle
└─ src
   ├─ main
   │  ├─ java
   │  │  └─ com
   │  │     └─ arabook
   │  │        └─ arabook
   │  │           ├─ ArabookApplication.java
   │  │           ├─ auth
   │  │           │  ├─ controller
   │  │           │  │  ├─ AuthApi.java
   │  │           │  │  ├─ AuthController.java
   │  │           │  │  ├─ TokenController.java
   │  │           │  │  └─ dto
   │  │           │  │     ├─ request
   │  │           │  │     │  ├─ AuthRequest.java
   │  │           │  │     │  └─ IssueTokenRequest.java
   │  │           │  │     └─ response
   │  │           │  │        ├─ AuthResponse.java
   │  │           │  │        └─ IssueTokenResponse.java
   │  │           │  └─ service
   │  │           │     ├─ AuthService.java
   │  │           │     ├─ AuthServiceImpl.java
   │  │           │     ├─ AuthServiceProvider.java
   │  │           │     ├─ SocialAuthService.java
   │  │           │     └─ vo
   │  │           │        └─ AuthMemberVO.java
   │  │           ├─ book
   │  │           │  ├─ controller
   │  │           │  │  ├─ BookApi.java
   │  │           │  │  ├─ BookController.java
   │  │           │  │  ├─ RecommendApi.java
   │  │           │  │  ├─ RecommendController.java
   │  │           │  │  └─ dto
   │  │           │  │     └─ response
   │  │           │  │        ├─ AIRecommendBookResponse.java
   │  │           │  │        ├─ BookDetailResponse.java
   │  │           │  │        ├─ BookResponse.java
   │  │           │  │        └─ BooksResponse.java
   │  │           │  ├─ entity
   │  │           │  │  ├─ BestSeller.java
   │  │           │  │  ├─ Book.java
   │  │           │  │  ├─ BookHashtagMapping.java
   │  │           │  │  └─ BookSubCategoryMapping.java
   │  │           │  ├─ repository
   │  │           │  │  ├─ BookCustomRepository.java
   │  │           │  │  ├─ BookCustomRepositoryImpl.java
   │  │           │  │  └─ BookRepository.java
   │  │           │  └─ service
   │  │           │     ├─ BestSellerService.java
   │  │           │     ├─ BestSellerServiceImpl.java
   │  │           │     ├─ BookService.java
   │  │           │     └─ BookServiceImpl.java
   │  │           ├─ category
   │  │           │  ├─ controller
   │  │           │  │  ├─ CategoryApi.java
   │  │           │  │  ├─ CategoryController.java
   │  │           │  │  └─ dto
   │  │           │  │     └─ response
   │  │           │  │        ├─ MainCategoryResponse.java
   │  │           │  │        ├─ MainCategoryWithSubCategoriesResponse.java
   │  │           │  │        └─ SubCategoryResponse.java
   │  │           │  ├─ entity
   │  │           │  │  ├─ MainCategory.java
   │  │           │  │  └─ SubCategory.java
   │  │           │  ├─ repository
   │  │           │  │  ├─ MainCategoryCustomRepository.java
   │  │           │  │  ├─ MainCategoryCustomRepositoryImpl.java
   │  │           │  │  ├─ MainCategoryRepository.java
   │  │           │  │  ├─ SubCategoryCustomRepository.java
   │  │           │  │  ├─ SubCategoryCustomRepositoryImpl.java
   │  │           │  │  └─ SubCategoryRepository.java
   │  │           │  └─ service
   │  │           │     ├─ CategoryService.java
   │  │           │     └─ CategoryServiceImpl.java
   │  │           ├─ common
   │  │           │  ├─ config
   │  │           │  │  ├─ QuerydslConfig.java
   │  │           │  │  ├─ SecurityConfig.java
   │  │           │  │  ├─ SwaggerConfig.java
   │  │           │  │  └─ WebConfig.java
   │  │           │  ├─ entity
   │  │           │  │  └─ BaseTimeEntity.java
   │  │           │  ├─ exception
   │  │           │  │  ├─ auth
   │  │           │  │  │  ├─ AuthException.java
   │  │           │  │  │  └─ AuthExceptionType.java
   │  │           │  │  ├─ book
   │  │           │  │  │  ├─ BookException.java
   │  │           │  │  │  └─ BookExceptionType.java
   │  │           │  │  ├─ category
   │  │           │  │  │  ├─ CategoryException.java
   │  │           │  │  │  └─ CategoryExceptionType.java
   │  │           │  │  ├─ common
   │  │           │  │  │  ├─ BusinessException.java
   │  │           │  │  │  ├─ ClientException.java
   │  │           │  │  │  ├─ CommonExceptionType.java
   │  │           │  │  │  └─ ExceptionType.java
   │  │           │  │  ├─ member
   │  │           │  │  │  ├─ MemberException.java
   │  │           │  │  │  └─ MemberExceptionType.java
   │  │           │  │  └─ review
   │  │           │  │     ├─ ReviewException.java
   │  │           │  │     └─ ReviewExceptionType.java
   │  │           │  ├─ handler
   │  │           │  │  └─ GlobalExceptionHandler.java
   │  │           │  ├─ redis
   │  │           │  │  └─ repository
   │  │           │  │     ├─ RedisTokenRepository.java
   │  │           │  │     └─ dto
   │  │           │  │        └─ RefreshTokenDTO.java
   │  │           │  ├─ response
   │  │           │  │  └─ ResponseTemplate.java
   │  │           │  ├─ security
   │  │           │  │  ├─ AuthMember.java
   │  │           │  │  ├─ AuthMemberArgumentResolver.java
   │  │           │  │  ├─ MemberAuthentication.java
   │  │           │  │  └─ filter
   │  │           │  │     ├─ JwtAuthenticationFilter.java
   │  │           │  │     └─ JwtExceptionFilter.java
   │  │           │  └─ success
   │  │           │     ├─ book
   │  │           │     │  └─ BookSuccessType.java
   │  │           │     ├─ category
   │  │           │     │  └─ CategorySuccessType.java
   │  │           │     ├─ common
   │  │           │     │  └─ SuccessType.java
   │  │           │     ├─ member
   │  │           │     │  └─ MemberSuccessType.java
   │  │           │     └─ review
   │  │           │        └─ ReviewSuccessType.java
   │  │           ├─ external
   │  │           │  ├─ jwt
   │  │           │  │  ├─ provider
   │  │           │  │  │  ├─ JwtTokenProvider.java
   │  │           │  │  │  └─ JwtTokenProviderImpl.java
   │  │           │  │  ├─ service
   │  │           │  │  │  ├─ JwtService.java
   │  │           │  │  │  └─ JwtServiceImpl.java
   │  │           │  │  └─ validator
   │  │           │  │     ├─ JwtTokenValidator.java
   │  │           │  │     └─ JwtTokenValidatorImpl.java
   │  │           │  └─ social
   │  │           │     └─ service
   │  │           │        ├─ KakaoSocialAuthService.java
   │  │           │        └─ dto
   │  │           │           └─ KakaoUserInfoResponse.java
   │  │           ├─ hashtag
   │  │           │  ├─ controller
   │  │           │  │  └─ dto
   │  │           │  │     └─ response
   │  │           │  │        └─ HashTagResponse.java
   │  │           │  └─ entity
   │  │           │     └─ Hashtag.java
   │  │           ├─ member
   │  │           │  ├─ controller
   │  │           │  │  ├─ MemberApi.java
   │  │           │  │  ├─ MemberController.java
   │  │           │  │  └─ dto
   │  │           │  │     └─ request
   │  │           │  │        └─ MemberOnboardingRequest.java
   │  │           │  ├─ entity
   │  │           │  │  ├─ AIRecommendation.java
   │  │           │  │  ├─ Member.java
   │  │           │  │  ├─ MemberSubCategorySelection.java
   │  │           │  │  └─ enums
   │  │           │  │     ├─ Gender.java
   │  │           │  │     ├─ Role.java
   │  │           │  │     └─ SocialPlatformType.java
   │  │           │  ├─ repository
   │  │           │  │  ├─ AIRecommendationRepository.java
   │  │           │  │  ├─ MemberRepository.java
   │  │           │  │  └─ MemberSubCategorySelectionRepository.java
   │  │           │  └─ service
   │  │           │     ├─ MemberService.java
   │  │           │     ├─ MemberServiceImpl.java
   │  │           │     ├─ MemberSubCategorySelectionService.java
   │  │           │     └─ MemberSubCategorySelectionServiceImpl.java
   │  │           └─ review
   │  │              ├─ controller
   │  │              │  ├─ ReviewApi.java
   │  │              │  ├─ ReviewController.java
   │  │              │  └─ dto
   │  │              │     ├─ request
   │  │              │     │  ├─ CreateReviewRequest.java
   │  │              │     │  └─ UpdateReviewRequest.java
   │  │              │     └─ response
   │  │              │        ├─ ReviewDetailResponse.java
   │  │              │        ├─ ReviewIdResponse.java
   │  │              │        ├─ ReviewResponse.java
   │  │              │        └─ ReviewsResponse.java
   │  │              ├─ entity
   │  │              │  ├─ Review.java
   │  │              │  └─ enums
   │  │              │     └─ ReviewTag.java
   │  │              ├─ repository
   │  │              │  ├─ ReviewCustomRepository.java
   │  │              │  ├─ ReviewCustomRepositoryImpl.java
   │  │              │  └─ ReviewRepository.java
   │  │              └─ service
   │  │                 ├─ ReviewService.java
   │  │                 └─ ReviewServiceImpl.java
   │  └─ resources
   │     ├─ application-dev.yml
   │     ├─ application-local.yml
   │     ├─ application-prod.yml
   │     ├─ application-test.yml
   │     └─ images
   │        └─ card
   │           ├─ AVERAGE.png
   │           ├─ DISAPPOINTED.png
   │           ├─ ENJOYABLE.png
   │           ├─ LIFE_CHANGING.png
   │           └─ SLIGHTLY_DISAPPOINTED.png
   └─ test
      └─ java
         └─ com
            └─ arabook
               └─ arabook
                  └─ ArabookApplicationTests.java

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published