From 578850118cc7db0f31de34555a0fc801f600c42b Mon Sep 17 00:00:00 2001
From: sojungpp <90022940+sojungpp@users.noreply.github.com>
Date: Fri, 12 Jan 2024 16:39:30 +0900
Subject: [PATCH] Create README.md
---
README.md | 437 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 437 insertions(+)
create mode 100644 README.md
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..cdc749d9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,437 @@
+# (주)플래디 사내 관리 시스템
+
+
+![image](https://github.com/PLADI-ALM/PLADI-ALM-Web/assets/62008784/0ecb70cf-fcae-461e-8dcd-d2d612fee0e3)
+
+
+
+## Tech Stack
+### Backend
+ ![JWT](https://img.shields.io/badge/JWT-black?style=for-the-badge&logo=JSON%20web%20tokens)
+
+### DB
+
+
+### CI/CD
+
+
+### Deploy
+
+
+### Develop Tool
+
+
+### Etc.
+
+
+
+
+
+
+## Project Architecture
+
+Final Architecture
+
+
+![Group 48018](https://github.com/PLADI-ALM/PLADI-ALM-Server/assets/90022940/0e680667-e407-4a4e-8fa5-f02b57a187a5)
+
+
+
+CI/CD
+
+
+![cicd](https://github.com/PLADI-ALM/PLADI-ALM-Server/assets/90022940/35372c6b-27bc-4321-9066-7efdf1c6444d)
+
+
+
+AWS Lambda
+
+
+![Group 48018](https://github.com/PLADI-ALM/PLADI-ALM-Server/assets/90022940/7f07a5c9-2829-45c5-a035-1a6a85294254)
+
+
+
+FCM(Firebase Cloud Messaging)
+
+
+![Group 48018](https://github.com/PLADI-ALM/PLADI-ALM-Server/assets/90022940/0ab6d61e-179f-49e7-a318-b706e05a5d7d)
+
+
+
+SMTP(Simple Mail Transfer Protocol)
+
+
+![Group 48018](https://github.com/PLADI-ALM/PLADI-ALM-Server/assets/90022940/18365afd-e04e-49e1-b750-8b8b234fd202)
+
+
+
+## Project Structure
+
+
+Details
+
+```jsx
+src
+ ├── main
+ │ ├── java
+ │ │ └── com
+ │ │ └── example
+ │ │ └── pladialmserver
+ │ │ ├── PladiAlmServerApplication.java
+ │ │ ├── booking
+ │ │ │ ├── controller
+ │ │ │ │ ├── car
+ │ │ │ │ │ ├── CarBookingAdminController.java
+ │ │ │ │ │ └── CarBookingController.java
+ │ │ │ │ ├── office
+ │ │ │ │ │ ├── OfficeBookingAdminController.java
+ │ │ │ │ │ └── OfficeBookingController.java
+ │ │ │ │ └── resource
+ │ │ │ │ ├── ResourceBookingAdminController.java
+ │ │ │ │ └── ResourceBookingController.java
+ │ │ │ ├── dto
+ │ │ │ │ ├── request
+ │ │ │ │ │ ├── ReturnProductReq.java
+ │ │ │ │ │ └── SendEmailReq.java
+ │ │ │ │ └── response
+ │ │ │ │ ├── AdminBookingRes.java
+ │ │ │ │ ├── BookingRes.java
+ │ │ │ │ ├── OfficeBookingDetailRes.java
+ │ │ │ │ └── ProductBookingDetailRes.java
+ │ │ │ ├── entity
+ │ │ │ │ ├── CarBooking.java
+ │ │ │ │ ├── OfficeBooking.java
+ │ │ │ │ └── ResourceBooking.java
+ │ │ │ ├── repository
+ │ │ │ │ ├── carBooking
+ │ │ │ │ │ ├── CarBookingCustom.java
+ │ │ │ │ │ ├── CarBookingRepository.java
+ │ │ │ │ │ └── CarBookingRepositoryImpl.java
+ │ │ │ │ ├── officeBooking
+ │ │ │ │ │ ├── OfficeBookingCustom.java
+ │ │ │ │ │ ├── OfficeBookingRepository.java
+ │ │ │ │ │ └── OfficeBookingRepositoryImpl.java
+ │ │ │ │ └── resourceBooking
+ │ │ │ │ ├── ResourceBookingCustom.java
+ │ │ │ │ ├── ResourceBookingRepository.java
+ │ │ │ │ └── ResourceBookingRepositoryImpl.java
+ │ │ │ └── service
+ │ │ │ ├── CarBookingService.java
+ │ │ │ ├── OfficeBookingService.java
+ │ │ │ ├── ProductBookingService.java
+ │ │ │ └── ResourceBookingService.java
+ │ │ ├── equipment
+ │ │ │ ├── controller
+ │ │ │ │ └── EquipmentController.java
+ │ │ │ ├── dto
+ │ │ │ │ ├── request
+ │ │ │ │ │ ├── RegisterEquipmentReq.java
+ │ │ │ │ │ └── UpdateEquipmentReq.java
+ │ │ │ │ └── response
+ │ │ │ │ ├── EquipmentCategoryRes.java
+ │ │ │ │ ├── GetEquipmentRes.java
+ │ │ │ │ └── SearchEquipmentRes.java
+ │ │ │ ├── entity
+ │ │ │ │ ├── Equipment.java
+ │ │ │ │ └── EquipmentCategory.java
+ │ │ │ ├── repository
+ │ │ │ │ ├── EquipmentCategoryRepository.java
+ │ │ │ │ └── EquipmentRepository.java
+ │ │ │ └── service
+ │ │ │ └── EquipmentService.java
+ │ │ ├── global
+ │ │ │ ├── Constants.java
+ │ │ │ ├── CustomPage.java
+ │ │ │ ├── config
+ │ │ │ │ ├── AsyncConfig.java
+ │ │ │ │ ├── EmailConfig.java
+ │ │ │ │ ├── JasyptConfig.java
+ │ │ │ │ ├── QuerydslConfig.java
+ │ │ │ │ ├── RedisConfig.java
+ │ │ │ │ ├── SwaggerConfig.java
+ │ │ │ │ └── WebConfig.java
+ │ │ │ ├── controller
+ │ │ │ │ └── HealthCheckController.java
+ │ │ │ ├── entity
+ │ │ │ │ ├── BaseEntity.java
+ │ │ │ │ └── BookingStatus.java
+ │ │ │ ├── entityListener
+ │ │ │ │ └── UserEntityListener.java
+ │ │ │ ├── exception
+ │ │ │ │ ├── BaseException.java
+ │ │ │ │ ├── BaseResponseCode.java
+ │ │ │ │ └── ExceptionHandlerAdvice.java
+ │ │ │ ├── feign
+ │ │ │ │ ├── dto
+ │ │ │ │ │ └── UserReq.java
+ │ │ │ │ ├── event
+ │ │ │ │ │ ├── DeleteUserEvent.java
+ │ │ │ │ │ └── UserEvent.java
+ │ │ │ │ ├── feignClient
+ │ │ │ │ │ └── ArchivingServerClient.java
+ │ │ │ │ ├── handler
+ │ │ │ │ │ ├── ArchivingServerEventHandler.java
+ │ │ │ │ │ └── ArchivingServerEventHandlerImpl.java
+ │ │ │ │ └── publisher
+ │ │ │ │ ├── ArchivingServerEventPublisher.java
+ │ │ │ │ └── ArchivingServerEventPublisherImpl.java
+ │ │ │ ├── resolver
+ │ │ │ │ ├── Account.java
+ │ │ │ │ └── LoginResolver.java
+ │ │ │ ├── response
+ │ │ │ │ └── ResponseCustom.java
+ │ │ │ ├── service
+ │ │ │ └── utils
+ │ │ │ ├── AwsS3ImageUrlUtil.java
+ │ │ │ ├── BeanUtil.java
+ │ │ │ ├── DateTimeUtil.java
+ │ │ │ ├── DateTimeUtils.java
+ │ │ │ ├── EmailUtil.java
+ │ │ │ ├── JwtUtil.java
+ │ │ │ └── RedisUtil.java
+ │ │ ├── notification
+ │ │ │ ├── dto
+ │ │ │ │ ├── FcmMessage.java
+ │ │ │ │ ├── Message.java
+ │ │ │ │ └── Notification.java
+ │ │ │ ├── entity
+ │ │ │ │ └── PushNotification.java
+ │ │ │ ├── repository
+ │ │ │ │ └── PushNotificationRepository.java
+ │ │ │ └── service
+ │ │ │ └── PushNotificationService.java
+ │ │ ├── office
+ │ │ │ ├── controller
+ │ │ │ │ ├── OfficeAdminController.java
+ │ │ │ │ └── OfficeController.java
+ │ │ │ ├── dto
+ │ │ │ │ ├── request
+ │ │ │ │ │ ├── CreateOfficeReq.java
+ │ │ │ │ │ └── OfficeReq.java
+ │ │ │ │ └── response
+ │ │ │ │ ├── AdminOfficeRes.java
+ │ │ │ │ ├── AdminOfficesDetailsRes.java
+ │ │ │ │ ├── BookedTimeRes.java
+ │ │ │ │ ├── BookingStateRes.java
+ │ │ │ │ ├── OfficeRes.java
+ │ │ │ │ ├── OfficeReservatorRes.java
+ │ │ │ │ └── OfficesList.java
+ │ │ │ ├── entity
+ │ │ │ │ ├── Facility.java
+ │ │ │ │ ├── Office.java
+ │ │ │ │ └── OfficeFacility.java
+ │ │ │ ├── repository
+ │ │ │ │ ├── OfficeFacilityRepository.java
+ │ │ │ │ ├── facility
+ │ │ │ │ │ ├── FacilityCustom.java
+ │ │ │ │ │ ├── FacilityRepository.java
+ │ │ │ │ │ └── FacilityRepositoryImpl.java
+ │ │ │ │ └── office
+ │ │ │ │ ├── OfficeCustom.java
+ │ │ │ │ ├── OfficeRepository.java
+ │ │ │ │ └── OfficeRepositoryImpl.java
+ │ │ │ └── service
+ │ │ │ └── OfficeService.java
+ │ │ ├── product
+ │ │ │ ├── car
+ │ │ │ │ ├── controller
+ │ │ │ │ │ ├── CarAdminController.java
+ │ │ │ │ │ └── CarController.java
+ │ │ │ │ ├── dto
+ │ │ │ │ │ └── CarRes.java
+ │ │ │ │ ├── entity
+ │ │ │ │ │ └── Car.java
+ │ │ │ │ ├── repository
+ │ │ │ │ │ ├── CarCustom.java
+ │ │ │ │ │ ├── CarRepository.java
+ │ │ │ │ │ └── CarRepositoryImpl.java
+ │ │ │ │ └── service
+ │ │ │ │ └── CarService.java
+ │ │ │ ├── dto
+ │ │ │ │ ├── request
+ │ │ │ │ │ ├── CreateProductReq.java
+ │ │ │ │ │ └── ProductReq.java
+ │ │ │ │ └── response
+ │ │ │ │ ├── AdminProductDetailsRes.java
+ │ │ │ │ ├── AdminProductRes.java
+ │ │ │ │ ├── AdminProductsRes.java
+ │ │ │ │ ├── ProductBookingRes.java
+ │ │ │ │ ├── ProductDetailRes.java
+ │ │ │ │ └── ProductList.java
+ │ │ │ ├── resource
+ │ │ │ │ ├── controller
+ │ │ │ │ │ ├── ResourceAdminController.java
+ │ │ │ │ │ └── ResourceController.java
+ │ │ │ │ ├── dto
+ │ │ │ │ │ └── ResourceRes.java
+ │ │ │ │ ├── entity
+ │ │ │ │ │ └── Resource.java
+ │ │ │ │ ├── repository
+ │ │ │ │ │ ├── ResourceCustom.java
+ │ │ │ │ │ ├── ResourceRepository.java
+ │ │ │ │ │ └── ResourceRepositoryImpl.java
+ │ │ │ │ └── service
+ │ │ │ │ └── ResourceService.java
+ │ │ │ └── service
+ │ │ │ └── ProductService.java
+ │ │ └── user
+ │ │ ├── controller
+ │ │ │ ├── AdminUserController.java
+ │ │ │ └── UserController.java
+ │ │ ├── dto
+ │ │ │ ├── TokenDto.java
+ │ │ │ ├── request
+ │ │ │ │ ├── AdminUpdateUserReq.java
+ │ │ │ │ ├── CheckEmailCodeReq.java
+ │ │ │ │ ├── CreateUserReq.java
+ │ │ │ │ ├── EmailPWReq.java
+ │ │ │ │ ├── ResetPWReq.java
+ │ │ │ │ ├── ResponsibilityListRes.java
+ │ │ │ │ ├── ResponsibilityRes.java
+ │ │ │ │ ├── SendAssetsEmailReq.java
+ │ │ │ │ ├── UpdateUserReq.java
+ │ │ │ │ └── VerifyEmailReq.java
+ │ │ │ └── response
+ │ │ │ ├── DepartmentListDto.java
+ │ │ │ ├── NotificationRes.java
+ │ │ │ ├── UserNameRes.java
+ │ │ │ └── UserRes.java
+ │ │ ├── entity
+ │ │ │ ├── Affiliation.java
+ │ │ │ ├── Department.java
+ │ │ │ ├── Role.java
+ │ │ │ └── User.java
+ │ │ ├── repository
+ │ │ │ ├── AffiliationRepository.java
+ │ │ │ ├── DepartmentRepository.java
+ │ │ │ └── user
+ │ │ │ ├── UserCustom.java
+ │ │ │ ├── UserRepository.java
+ │ │ │ └── UserRepositoryImpl.java
+ │ │ └── service
+ │ │ └── UserService.java
+ │ └── resources
+ │ ├── application-dev.yml
+ │ ├── application-prod.yml
+ │ ├── application.properties
+ │ ├── application.yml
+ │ └── templates
+ │ ├── assets.html
+ │ ├── booking.html
+ │ └── email.html
+ └── test
+ ├── java
+ └── com
+ └── example
+ └── pladialmserver
+ ├── PladiAlmServerApplicationTests.java
+ ├── booking
+ │ ├── controller
+ │ │ └── resource
+ │ └── service
+ │ ├── ResourceBookingServiceTest.java
+ │ └── model
+ │ └── TestResourceBookingInfo.java
+ ├── equipment
+ │ ├── controller
+ │ │ └── EquipmentControllerTest.java
+ │ └── service
+ │ ├── EquipmentServiceTest.java
+ │ └── model
+ │ └── TestEquipmentInfo.java
+ ├── global
+ │ ├── ControllerTestSupport.java
+ │ └── IntegrationTestSupport.java
+ ├── infra
+ │ └── HealthCheckControllerTest.java
+ ├── office
+ │ ├── controller
+ │ │ └── OfficeControllerTest.java
+ │ └── service
+ │ ├── OfficeServiceBookingTest.java
+ │ ├── OfficeServiceTest.java
+ │ └── model
+ │ └── TestOfficeInfo.java
+ ├── resource
+ │ ├── controller
+ │ │ └── ResourceControllerTest.java
+ │ └── service
+ │ ├── ResourceServiceTest.java
+ │ └── model
+ │ └── TestResourceInfo.java
+ └── user
+ └── service
+ ├── UserServiceTest.java
+ └── model
+ └── TestUserInfo.java
+```
+
+
+
+
+
+## DB
+![Untitled 2](https://github.com/PLADI-ALM/PLADI-ALM-Server/assets/90022940/54bdb4d3-92b4-4a4b-a69b-aca5dd57bc02)
+
+
+
+
+
+## Develop Convention
+**Commit**
+> [지라번호] feat: 설명
+```
+[PDS-5] feat: 회의실 목록 조회 API 생성
+```
+
+- feat: 새로운 주요 기능 추가
+- fix: 일반적인 수정 사항
+- chore: config, 라이브러리, 빌드 관련 파일 수정
+- refactor: 코드 리팩토링
+- rename: 파일, 클래스, 변수명 등 이름 변경
+- docs: 문서 수정
+- comment: 주석 추가 및 수정
+- hotfix: 긴급한 수정 사항
+- test: 테스트 코드 작성
+
+
+
+**Pull Request**
+> [지라번호/feat] PR설명
+```
+[PDS-5/feat] 회의실 목록 조회 API
+```
+
+
+
+**Branch**
+> feat/PDS-지라번호-메소드명(카멜 케이스)
+```
+feat/PDS-5-createOffice, fix/PDS-6-modifyReservation
+```
+
+- main
+ - 사용자가 사용하는 브랜치, 언제나 실행가능한 상태
+- develop
+ - 개발자가 사용하는 브랜치
+ - 실행 가능한 상태를 만들어 가는 과정
+- feat
+ - 새로운 기능 브랜치
+- test
+ - 테스트가 필요한 코드용 브랜치
+- fix
+ - 버그 발생 시 버그 수정
+- hotfix
+ - 긴급하게 버그를 수정하는 브랜치
+
+
+
+
+
+
+
+## Member
+|[김민기](https://github.com/dangnak2)|[박서연](https://github.com/psyeon1120)|[박소정](https://github.com/sojungpp)|[이승학](https://github.com/leeseunghakhello)|[장채은](https://github.com/chaerlo127)|
+|:---:|:---:|:---:|:---:|:---:|
+||||||
+| **Server Architect
Backend Developer** | **Project Manager
Backend Developer**| **Project Manager
Backend Developer** | **Test Leader
Backend Developer** | **DB Developer
Backend Developer** |