사이먼's 코딩노트
[SpringBoot] 유기동물 보호관리 및 입양 사이트 제작 (1) 본문
프로젝트/[SpringBoot] 유기동물 보호관리 및 입양 사이트 제작
[SpringBoot] 유기동물 보호관리 및 입양 사이트 제작 (1)
simonpark817 2024. 9. 1. 22:39[유기동물 보호관리 및 입양 사이트 제작]
- 유기동물 보호관리 및 입양 사이트라는 주제 4인 1조의 팀 프로젝트를 진행하였습니다.
- '유기동물 보호관리 및 입양 사이트 제작' 카테고리에서는 팀 프로젝트를 진행하면서 구현 및 설계된 데이터베이스와 각 화면 페이지에 대한 설명을 작성하고자 합니다.
- 각 페이지의 대한 코드 구현은 따로 포스팅되지 않을 예정이니 코드를 참고하고 싶으시다면 아래 깃허브 리포지터리를 방문해 주시길 바랍니다.
- 깃허브 리포지터리 주소 : https://github.com/psm817/AniBirth
GitHub - psm817/AniBirth
Contribute to psm817/AniBirth development by creating an account on GitHub.
github.com
[프로젝트 개요]
- 다음은 유기동물 보호관리 및 입양 사이트(이하 AniBirth) 제작에 앞서 프로젝트 개요에 대해서 설명드립니다.
- 프로젝트 명이 AniBirth인 이유는 동물을 의미하는 Animal의 'Ani'와 태어남의 'Birth'를 결합하여, 유기동물에게 새로운 삶의 기회를 제공한다는 깊은 의미를 담고 있습니다.
- 유기동물의 삶의 질을 개선하고 입양률 상승과 후원을 통한 유기동물 보호소에 대한 관심도 상승과 지원을 강화하는데 목적을 두었습니다.
- 또한 유기동물 봉사를 통한 유기동물들의 건강과 복지를 증진하고 유기동물 문제에 대한 인식을 높이기 위해 프로젝트를 기획하였습니다.
[개발 기간]
- 이번 팀 프로젝트의 개발 기간은 2024-07-15 ~ 2024-09-02 까지 약 2달의 기간동안 진행되었습니다.
[개발 환경]
- 운영체제 : Windows 10 / 11
- 통합개발환경(IDE) : Intellij
- 프레임워크 : SpringBoot
- JDK 버전 : JDK 17
- 데이터베이스 : MySQL
- 빌드 툴 : Gradle
- 관리 툴 : GitHub
[역할 분담]
- 이번 팀 프로젝트는 총 4명이 한 조를 이루어 진행했으며, 각자의 역할을 분배하여 페이지 기능을 구현하였고, 그 중에서 제가 개발한 부분을 소개하도록 하겠습니다.
- 저는 AniBirth 프로젝트의 팀장을 맡게 되었고, 회원관리와 봉사활동 그리고 애니마켓 기능 구현을 중점으로 개발을 진행하였습니다.
- 추가적으로 모든 페이지의 디자인에 관여하여 html와 css를 다루었습니다.
[프로젝트 전체 구조]
- 다음은 프로젝트의 전체 패키징구조에 대해서 정리를 해보았습니다.
- 패키징 분리를 할 때, 추후 관리가 편하도록 페이지 도메인별로 나눠서 기본 구조 틀을 잡았습니다.
- 각 페이지별 html은 layout.html이라는 공통 템플릿을 기반으로 header와 footer가 모든 페이지에 포함되도록 구현하였습니다.
├── README.md
├── build.gradle
├── .gitignore
├── gradlew.bat
├── gradlew
│
└── src.main
├── java.com.cod.AniBirth
├── AniBirthApplication.java
├── AniBirth
├── account
├── entity.Account.java
├── repository.AccountRepository.java
├── service.AccountService.java
├── adopt
├── controller.AdoptController.java
├── entity
├── Adopt.java
├── AdoptApply.java
├── AdoptReview.java
├── form
├── AdoptForm.java
├── AdoptionnoticeForm.java
├── createReviewForm.java
├── repository
├── AdoptApplyRepository.java
├── AdoptRepository.java
├── AdoptReviewRepository.java
├── service
├── AdoptReviewService.java
├── AdoptService.java
├── animal
├── contorller.AnimalController.java
├── entity.Animal.java
├── repository.AnimalRepository.java
├── service.AnimalService.java
├── AnimalSearchDTO.java
├── AnimalSpecification.java
├── article
├── contorller.ArticleController.java
├── contorller.QaController.java
├── entity.Article.java
├── entity.Qa.java
├── repository.ArticleRepository.java
├── repository.QaRepository.java
├── service.ArticleService.java
├── service.QaService.java
├── base
├── entity.BaseEntity.java
├── WebMvcConfig.java
├── calendar
├── contorller.CalendarController.java
├── entity.Calendar.java
├── repository.CalendarRepository.java
├── service.CalendarService.java
├── cart
├── contorller.CartController.java
├── entity.CartItem.java
├── repository.CartRepository.java
├── service.CartService.java
├── category
├── contorller.CategoryController.java
├── entity.Category.java
├── repository.CategoryRepository.java
├── service.CategoryService.java
├── CategoryInitializer.java
├── donation
├── contorller.DonationController.java
├── entity.Donation.java
├── repository.DonationRepository.java
├── service.DonationService.java
├── email
├── service.EmailService.java
├── global
├── initData.Dev.java
├── Message.Message.java
├── security
├── exception.MemberNotFoundException.java
├── exception.OAuthTypeMatchNotFoundException.java
├── CustomAuthenticationFailureHandler.java
├── CustomUserDetailsService.java
├── DataNotFoundException.java
├── MemberContext.java
├── OAuth2UserService.java
├── SecurityConfig.java
├── UserNotActiveException.java
├── home
├── contorller.HomeController.java
├── contorller.IntroduceController.java
├── member
├── contorller.MemberController.java
├── contorller.MyPageMemberController.java
├── contorller.UsernameCheckController.java
├── entity.Member.java
├── form.MemberForm.java
├── repository.MemberRepository.java
├── service.MemberService.java
├── order
├── contorller.OrderController.java
├── entity.Order.java
├── entity.OrderItem.java
├── repository.OrderItemRepository.java
├── repository.OrderRepository.java
├── service.OrderService.java
├── point
├── contorller.PointController.java
├── service.PointService.java
├── product
├── contorller.ProductController.java
├── entity.Product.java
├── repository.ProductRepository.java
├── service.ProductService.java
├── review
├── contorller.ReviewController.java
├── entity.Review.java
├── repository.ReviewRepository.java
├── service.ReviewService.java
├── volunteer
├── contorller.VolunteerController.java
├── entity.Volunteer.java
├── entity.VolunteerApplication.java
├── entity.VolunteerReview.java
├── repository.VolunteerRepository.java
├── repository.VolunteerApplicationRepository.java
├── repository.VolunteerReviewRepository.java
├── service.VolunteerService.java
├── service.VolunteerApplicationService.java
├── service.VolunteerReviewService.java
├── ApiExploer.java
├── ApiResponse.java
├── XmlToJsonConverter.java
├── global
├── util
├── HtmlUtils.java
├── Util.java
├── resource
├── static
├── adopt
├── 입양신청서폼.docx
├── 카테고리.svg
├── images
├── 샘플데이터 사진 및 프로젝트 로고 사진
├── javascript
├── adopt
├── zipcode.js
├── article
├── detail.js
├── commont
├── common.js
├── donation
├── donationscript.js
├── home
├── main.js
├── member
├── myProfile.js
├── agreement.js
├── login.js
├── modify.js
├── signup.js
├── social_modify.js
├── product
├── create.js
├── detail.js
├── qa
├── list.js
├── volunteer
├── create.js
├── detail.js
├── list.js
├── reviewCreate.js
├── resource
├── adopt
├── apply.css
├── create_review.css
├── detail.css
├── list.css
├── review.css
├── review_detail.css
├── article
├── detail.css
├── form.css
├── list.css
├── common
├── common.css
├── donation
├── donationPage.css
├── home
├── main.css
├── introduce
├── agreement.css
├── member
├── myPage
├── adopt.css
├── donation.css
├── market.css
├── myProfile.css
├── volunteer.css
├── agreement.css
├── login.css
├── modify.css
├── signup.css
├── social_modify.css
├── order
├── checkout.css
├── points
├── recharge.css
├── product
├── accessory.css
├── create.css
├── detail.css
├── food.css
├── list.css
├── main.css
├── qa
├── detail.css
├── form.css
├── list.css
├── volunteer
├── create.css
├── detail.css
├── list.css
├── modify.css
├── review.css
├── reviewCreate.css
├── reviewDetail.css
├── reviewModify.css
├── templates
├── adopt
├── adoption_noticeForm.html
├── create_review_form.html
├── detail.html
├── form.html
├── list.html
├── review.html
├── review_detail.html
├── article
├── detail.html
├── form.html
├── list.html
├── cart
├── list.html
├── donation
├── donation.html
├── home
├── main.html
├── introduce
├── agreement.html
├── anibirth.html
├── layout
├── layout.html
├── member
├── myPage
├── adopt.html
├── donation.html
├── market.html
├── myProfile.html
├── volunteer.html
├── agreement.html
├── login.html
├── modify.html
├── signup.html
├── social_modify.html
├── order
├── checkout.html
├── points
├── recharge.html
├── product
├── accessory
├── high_hit.html
├── high_price.html
├── high_rating.html
├── low_price.html
├── food
├── high_hit.html
├── high_price.html
├── high_rating.html
├── low_price.html
├── list
├── high_hit.html
├── high_price.html
├── high_rating.html
├── low_price.html
├── accessory.html
├── create.html
├── detail.html
├── food.html
├── list.html
├── main.html
├── modify.html
├── qa
├── detail.html
├── form.html
├── list.html
├── review
├── modify.html
├── volunteer
├── create.html
├── detail.html
├── list.html
├── modify.html
├── review.html
├── reviewCreate.html
├── reviewDetail.html
├── reviewModify.html
├── message.html
├── application.yml
├── application-dev.yml
├── application-prod.yml (배포용)
├── application-secret.yml (비공개)
├── application-secret.yml.default
├── application-test.yml (테스트용)
반응형