- INTRODUCTIONπ
- DESCRIPTION OF OUR PROJECTπ
- HOW TO INSTALLπ»
- EXECUTIONπ«
- TEAM MEMBERSπ©΅
- TECH STACKβ‘οΈ
- FILE STRUCTUREπΎ
2024λ
1νκΈ° μ€μλνκ΅ μννΈμ¨μ΄ 곡ν μ½μ€ ν
νλ‘μ νΈ.π₯π₯
μ΄μ κ΄λ¦¬ μννΈμ¨μ΄ β¨Project Pandaβ¨ μ
λλ€
Why is there a panda in the name?π€ There's a sad story there...π₯²
We couldn't get enough sleepπͺ so we have dark circles as a result.π»
We are becoming more and more like pandas.πΌ Cheers.
νλ‘μ νΈ νλ€ λ μννΈμ¨μ΄ κ°λ°μ μ£Ό λͺ©μ μΌλ‘ νλ νμ¬ λ±μ λ¨μ²΄λ₯Ό μν μ΄μ κ΄λ¦¬ μννΈμ¨μ΄ μ
λλ€.
μ΄μλ₯Ό μμ±νκ±°λ ν λΉνλ κ²μ λ¬Όλ‘ μ΄κ³ , ν΄λΉ μ΄μμ μνλ₯Ό κ΄λ¦¬νκ³ , λκΈ κΈ°λ₯μ μ΄μ©ν΄ ν΄λΉ μ΄μμ λν΄ μ‘°μ§ κ΅¬μ±μλ€κ³Ό 곡μ νλ λ±μ μμ
μ΄ λͺ¨λ κ°λ₯ν©λλ€.
μ΄ λΏλ§ μλλΌ νμ¬ μ΄μλ₯Ό κ³Όκ±° μ΄μλ€κ³Ό λΉκ΅νκ³ , GPT APIλ₯Ό νμ©ν΄ νμ¬ μ΄μμ κ°μ₯ μ΄μΈλ¦¬λ κ°λ°μλ₯Ό μΆμ²ν΄ μ£Όλ λ± κΈ°μ‘΄μ μ‘΄μ¬νλ μ΄μ κ΄λ¦¬ μμ€ν
κ³Όλ μ°¨λ³νλλ μ¬λ¬ κΈ°λ₯μ ν΅ν΄ μννΈμ¨μ΄μ μ¬μ©μ±μ λμμ΅λλ€.
νλ‘μ νΈ νλ€ λ μ΄μ κ΄λ¦¬μ νμν μ¬λ¬ κΈ°λ₯μ APIλ‘ μ 곡νκ³ μμΌλ―λ‘, ν΄λΉ APIλ₯Ό νμ©ν΄ μ¬λ¬ νλ«νΌμμ μ‘°μ§μ νμν μ΄μ κ΄λ¦¬ νλ‘κ·Έλ¨μ κ°λ°ν μ μμ΅λλ€.
- Java 17 μ΄μ λ° JDK 17 μ΄μ
- Node.js 14 λ° npm 6 μ΄μ
- IntelliJ, VSCode λ± ν΅ν©κ°λ°νκ²½ (μ ν μ¬ν)
- μλ² μ μ₯μ ν΄λ‘ π₯
https://github.com/Soft-Gallery/issue-management-backEnd.git
- application.propertiesπ₯
spring.application.name=
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.jpa.properties.hibernate.dialect=
#Availables: none, create, create_drop, update
spring.jpa.hibernate.ddl-auto=
spring.jpa.hibernate.naming.physical-strategy=
jwt.secret=
#Allowed Web URL
allowed.origin=
# openAI
api-key=
# Swagger Settings
# swagger-ui μ κ·Ό κ²½λ‘. default κ°μ /swagger-ui.htmlμ΄λ€.
springdoc.swagger-ui.path=/swagger-ui.html
# κ° APIμ κ·Έλ£Ή νμ μμ. path, query, body, response μμΌλ‘ μΆλ ₯
springdoc.swagger-ui.groups-order=DESC
# νκ·Έ μ λ ¬ μμ. alpha: μνλ²³ μ μ λ ¬, method: OpenAPI specification fileμ μνλ νκ·Έ μ λ ¬ λ°©μ μ§μ κΈ°μ¬
springdoc.swagger-ui.tags-sorter=alpha
# 컨νΈλ‘€λ¬ μ λ ¬ μμ. methodλ delete - get - patch - post - put μμΌλ‘ μ λ ¬λλ€. alphaλ₯Ό μ¬μ©ν΄ μνλ²³ μμΌλ‘ μ λ ¬ν μ μλ€.
springdoc.swagger-ui.operations-sorter=method
# swagger-ui default urlμΈ petstore htmlμ λΉνμ±ν μ€μ
springdoc.swagger-ui.disable-swagger-default-url=true
# swagger-uiμμ try νμ λ request durationμ μλ €μ£Όλ μ€μ
springdoc.swagger-ui.display-request-duration=true
# openAPI μ κ·Ό κ²½λ‘. default κ°μ /v3/api-docs μ΄λ€.
springdoc.api-docs.path=/api-docs
# Spring Actuatorμ endpointκΉμ§ 보μ¬μ€ κ²μΈμ§?
springdoc.show-actuator=true
# request media type μ κΈ°λ³Έ κ°
springdoc.default-consumes-media-type=application/json
# response media type μ κΈ°λ³Έ κ°
springdoc.default-produces-media-type=application/json
# ν΄λΉ ν¨ν΄μ λ§€μΉλλ controllerλ§ swagger-uiμ λ
ΈμΆνλ€.
springdoc.paths-to-match=/**
- νλ‘ νΈμλ μ μ₯μ ν΄λ‘ π₯
https://github.com/Soft-Gallery/issue-management-frontEnd.git
- λͺ¨λ°μΌ μ± μ μ₯μ ν΄λ‘ π₯
https://github.com/Soft-Gallery/issue-management-app.git
μΉ λ§ν¬ : http://54.166.71.13
μ€ν μ΄λ―Έμ§...λ£μ΄μΌ ν¨
μ ν¬ νμ μκ°ν©λλ€π€
- κΉμ νΈ: Back-End Dev/μ€μλνκ΅ μννΈμ¨μ΄νλΆ 20
- κΉμ©μ°: Lead Mobile-App Dev/μ€μλνκ΅ μννΈμ¨μ΄νλΆ 20
- κΉμ¬ν: Back-End Dev/μ€μλνκ΅ μννΈμ¨μ΄νλΆ 20
- λ°νκ²°: Back-End Dev/μ€μλνκ΅ μννΈμ¨μ΄νλΆ 20
- μ΄μλ―Ό: Lead Front-End Dev/μ€μλνκ΅ μννΈμ¨μ΄νλΆ 20
- Role Management
ADMIN,DEVELOPER,TESTER,PLλ€κ°μ§ROLEμ΄ μ‘΄μ¬νκ³ , ν΄λΉROLEμ΄ μ κ·Όν μ μλ μλ ν¬μΈνΈλ₯Ό μ ννκ³ μμ΅λλ€.
μΆκ°μ μΈ λ‘€μ΄ νμνλ©΄ λͺ μΈμ μλ‘μ΄ROLEμ νμ μ κΈ°μ νκ³ ,USERν΄λμ€λ₯Ό μμλ°μ κΈ°λ₯μ ꡬννμ¬ μ¬μ©ν μ μμ΅λλ€.
- Issue Management
μ΄μμν λΉ,μν λ³κ²½,ν΄κ²°λ±μ κΈ°λ₯μ μ 곡ν©λλ€. μ΄μλ₯Ό λ³΄κ³ νλreporter, μ΄μλ₯Ό ν λΉλ°λassignee, μ΄μλ₯Ό ν΄κ²°νλfixerλ±μ λμ΄ μ΄μλ₯Ό ν΄λΉνλ 주체λ₯Ό μ ν μ μμ΅λλ€.
λν κ°ROLEμ ν΄λΉνλ μ μ λ€μ΄ μνΈμμ©μ ν΅ν΄ ν΄λΉ μ΄μμ μνλ₯ΌNEW,ASSIGNED,FIXED,RESOLVED,CLOSED,REOPENEDλ±μΌλ‘ λ°κΎΈλ©° μν κ΄λ¦¬λ₯Ό ν μ μμ΅λλ€.
-
Recommend Assignee
GPT APIμλΉμ€λ₯Ό μ΄μ©ν΄ νμ¬ μ΄μμ κ°μ₯ μ΄μΈλ¦¬λAssigneeμΆμ²ν΄ μ΄μμ κ°λ°μλ₯Ό λ΄λΉμν¬ λ λμμ λ°μ μ μμ΅λλ€.
νμ¬ μ΄μλ₯Ό ν΄κ²°ν μ μλ μ΄μκ° λ°μν νλ‘μ νΈμ μν΄ μλ κ°λ°μλ€μ κ³Όκ±° μ΄μ ν΄κ²° λ΄μ λ° ν΄λΉ μ΄μμ μ€μλ λ±μ μ 보μ λλΆμ΄ κ° κ°λ°μλ€μ΄ νμ¬ μνμ€μΈ μ΄μλ€μ κ°μμ μ€μλ λ±μ λ€λ°©λ©΄μμ νκ°νμ¬ νμ¬ μ΄μλ₯Ό λ΄λΉν κ°λ°μλ₯Ό μΆμ²ν©λλ€.
-
Project Management
νλ‘μ νΈμμμ±,μ λ°μ΄νΈ,μμ λ°μν λ³κ²½κΈ°λ₯μ μ 곡ν©λλ€.
νΉμ ν ROLE(ADMIN λ±)μ ν΄λΉνλ μ μ λ νΉμ ν API μλν¬μΈνΈλ₯Ό ν΅ν΄ νλ‘μ νΈμ μ°Έκ°ν μ μ λ€μμΆκ°ν μ μμ΅λλ€.
- Comment
μ΄μμ λ¬λ¦¬λCommentλ₯Ό κ΄λ¦¬νλ κΈ°λ₯μ μ 곡ν©λλ€.
μ΄μμ μνκ° λ³νλ μν©μ ν¬ν¨ν΄ νμν μ¬λ¬ μν©μ νμ μ μνCommentλ₯Ό μΆκ° ν μ μμ΅λλ€.
- Statistics
νλ‘μ νΈμμ΄μ ν΅κ³μμ§λ°κ΄λ¦¬κΈ°λ₯μ μ 곡ν©λλ€.
νλ‘μ νΈ λ΄λΆμ μΈλΆμμ μ΄μλ€μ μ 보λ₯Ό μμ§ν΄μμΉν λ λ°μ΄ν°λ₯Ό μ 곡ν©λλ€.
ν΄λΌμ΄μΈνΈμμ μ΄ μ 보λ€μ νμ©ν΄ μκ°μ μΈ ν΅κ³ κΈ°λ₯μ ꡬνν μ μμ΅λλ€.
- Security
JWT ν ν°μ μ΄μ©ν λ‘κ·ΈμΈμ ꡬννμ΅λλ€.
JWT ν ν°μμ±,μ ν¨μ± κ²μ¬λ°νμ±λ±μ κΈ°λ₯μ ν¬ν¨νκ³ μμ΅λλ€.
λν μ¬μ©μμ μλ―Όν μ 보(λΉλ°λ²νΈ) λ±μμνΈννμ¬ λλΉμ μ μ₯νκ³ μμ΅λλ€
- 2024.06.02 ver
src
βββ main
βΒ Β βββ java
βΒ Β βΒ Β βββ com
βΒ Β βΒ Β βββ softgallery
βΒ Β βΒ Β βββ issuemanagementbackEnd
βΒ Β βΒ Β βββ IssueManagementBackEndApplication.java
βΒ Β βΒ Β βββ authentication
βΒ Β βΒ Β βΒ Β βββ CustomUserDetails.java
βΒ Β βΒ Β βΒ Β βββ CustomUserDetailsService.java
βΒ Β βΒ Β βΒ Β βββ JWTFilter.java
βΒ Β βΒ Β βΒ Β βββ JWTUtil.java
βΒ Β βΒ Β βΒ Β βββ LoginFilter.java
βΒ Β βΒ Β βββ config
βΒ Β βΒ Β βΒ Β βββ CORsMVCConfig.java
βΒ Β βΒ Β βΒ Β βββ ChatGptConfig.java
βΒ Β βΒ Β βΒ Β βββ CorsConfig.java
βΒ Β βΒ Β βΒ Β βββ SecurityConfig.java
βΒ Β βΒ Β βΒ Β βββ SwaggerConfig.java
βΒ Β βΒ Β βββ controller
βΒ Β βΒ Β βΒ Β βββ Home.java
βΒ Β βΒ Β βΒ Β βββ chat_gpt
βΒ Β βΒ Β βΒ Β βΒ Β βββ ChatGptController.java
βΒ Β βΒ Β βΒ Β βββ comment
βΒ Β βΒ Β βΒ Β βΒ Β βββ CommentController.java
βΒ Β βΒ Β βΒ Β βββ issue
βΒ Β βΒ Β βΒ Β βΒ Β βββ IssueController.java
βΒ Β βΒ Β βΒ Β βββ project
βΒ Β βΒ Β βΒ Β βΒ Β βββ ProjectController.java
βΒ Β βΒ Β βΒ Β βββ project_member
βΒ Β βΒ Β βΒ Β βΒ Β βββ ProjectMemberController.java
βΒ Β βΒ Β βΒ Β βββ statistics
βΒ Β βΒ Β βΒ Β βΒ Β βββ StatisticsController.java
βΒ Β βΒ Β βΒ Β βββ user
βΒ Β βΒ Β βΒ Β βββ UserController.java
βΒ Β βΒ Β βββ dto
βΒ Β βΒ Β βΒ Β βββ chat_gpt
βΒ Β βΒ Β βΒ Β βΒ Β βββ ChatGptRequestDTO.java
βΒ Β βΒ Β βΒ Β βΒ Β βββ ChatGptResponseDTO.java
βΒ Β βΒ Β βΒ Β βΒ Β βββ Choice.java
βΒ Β βΒ Β βΒ Β βΒ Β βββ Message.java
βΒ Β βΒ Β βΒ Β βΒ Β βββ QuestionRequestDTO.java
βΒ Β βΒ Β βΒ Β βββ comment
βΒ Β βΒ Β βΒ Β βΒ Β βββ CommentDTO.java
βΒ Β βΒ Β βΒ Β βββ issue
βΒ Β βΒ Β βΒ Β βΒ Β βββ IssueCreationRequestDTO.java
βΒ Β βΒ Β βΒ Β βΒ Β βββ IssueDTO.java
βΒ Β βΒ Β βΒ Β βββ project
βΒ Β βΒ Β βΒ Β βΒ Β βββ ProjectDTO.java
βΒ Β βΒ Β βΒ Β βββ project_member
βΒ Β βΒ Β βΒ Β βΒ Β βββ ProjectMemberDTO.java
βΒ Β βΒ Β βΒ Β βββ statistics
βΒ Β βΒ Β βΒ Β βΒ Β βββ StatisticsDTO.java
βΒ Β βΒ Β βΒ Β βββ user
βΒ Β βΒ Β βΒ Β βββ UserDTO.java
βΒ Β βΒ Β βββ entity
βΒ Β βΒ Β βΒ Β βββ comment
βΒ Β βΒ Β βΒ Β βΒ Β βββ CommentEntity.java
βΒ Β βΒ Β βΒ Β βββ issue
βΒ Β βΒ Β βΒ Β βΒ Β βββ IssueEntity.java
βΒ Β βΒ Β βΒ Β βββ project
βΒ Β βΒ Β βΒ Β βΒ Β βββ ProjectEntity.java
βΒ Β βΒ Β βΒ Β βββ project_member
βΒ Β βΒ Β βΒ Β βΒ Β βββ ProjectMemberEntity.java
βΒ Β βΒ Β βΒ Β βββ statistics
βΒ Β βΒ Β βΒ Β βΒ Β βββ StatisticsEntity.java
βΒ Β βΒ Β βΒ Β βββ user
βΒ Β βΒ Β βΒ Β βββ AdminEntity.java
βΒ Β βΒ Β βΒ Β βββ DeveloperEntity.java
βΒ Β βΒ Β βΒ Β βββ PLEntity.java
βΒ Β βΒ Β βΒ Β βββ TesterEntity.java
βΒ Β βΒ Β βΒ Β βββ UserEntity.java
βΒ Β βΒ Β βββ exception
βΒ Β βΒ Β βΒ Β βββ ObjectNotFoundException.java
βΒ Β βΒ Β βΒ Β βββ ProjectMemberNotFoundException.java
βΒ Β βΒ Β βββ repository
βΒ Β βΒ Β βΒ Β βββ comment
βΒ Β βΒ Β βΒ Β βΒ Β βββ CommentRepository.java
βΒ Β βΒ Β βΒ Β βββ issue
βΒ Β βΒ Β βΒ Β βΒ Β βββ IssueRepository.java
βΒ Β βΒ Β βΒ Β βββ project
βΒ Β βΒ Β βΒ Β βΒ Β βββ ProjectRepository.java
βΒ Β βΒ Β βΒ Β βββ project_member
βΒ Β βΒ Β βΒ Β βΒ Β βββ ProjectMemberRepository.java
βΒ Β βΒ Β βΒ Β βββ statistics
βΒ Β βΒ Β βΒ Β βΒ Β βββ StatisticsRepository.java
βΒ Β βΒ Β βΒ Β βββ user
βΒ Β βΒ Β βΒ Β βββ UserRepository.java
βΒ Β βΒ Β βββ service
βΒ Β βΒ Β βββ chatGpt
βΒ Β βΒ Β βΒ Β βββ ChatGptService.java
βΒ Β βΒ Β βΒ Β βββ ChatGptServiceIF.java
βΒ Β βΒ Β βΒ Β βββ GptPrompt.java
βΒ Β βΒ Β βββ comment
βΒ Β βΒ Β βΒ Β βββ CommentService.java
βΒ Β βΒ Β βΒ Β βββ CommentServiceIF.java
βΒ Β βΒ Β βββ custom_annotation
βΒ Β βΒ Β βΒ Β βββ IDRule.java
βΒ Β βΒ Β βΒ Β βββ PasswordRule.java
βΒ Β βΒ Β βββ issue
βΒ Β βΒ Β βΒ Β βββ IssueService.java
βΒ Β βΒ Β βΒ Β βββ IssueServiceIF.java
βΒ Β βΒ Β βΒ Β βββ MainCause.java
βΒ Β βΒ Β βΒ Β βββ Priority.java
βΒ Β βΒ Β βΒ Β βββ State.java
βΒ Β βΒ Β βββ project
βΒ Β βΒ Β βΒ Β βββ ProjectService.java
βΒ Β βΒ Β βΒ Β βββ ProjectServiceIF.java
βΒ Β βΒ Β βΒ Β βββ ProjectState.java
βΒ Β βΒ Β βββ projectMember
βΒ Β βΒ Β βΒ Β βββ ProjectMemberService.java
βΒ Β βΒ Β βΒ Β βββ ProjectMemberServiceIF.java
βΒ Β βΒ Β βββ statistics
βΒ Β βΒ Β βΒ Β βββ StatisticsService.java
βΒ Β βΒ Β βΒ Β βββ StatisticsServiceIF.java
βΒ Β βΒ Β βββ user
βΒ Β βΒ Β βββ Role.java
βΒ Β βΒ Β βββ UserEntityFactory.java
βΒ Β βΒ Β βββ UserService.java
βΒ Β βΒ Β βββ UserServiceIF.java
βΒ Β βββ resources
βΒ Β βββ application.properties
βββ test
βββ java
βββ com
βββ softgallery
βββ issuemanagementbackEnd
βββ IssueManagementBackEndApplicationTests.java
βββ service
βββ chatGpt
βΒ Β βββ ChatGptServiceTest.java
βββ comment
βΒ Β βββ CommentServiceTest.java
βββ custom_annotation
βΒ Β βββ IDRuleTest.java
βββ issue
βΒ Β βββ IssueServiceTest.java
βββ project
βΒ Β βββ ProjectServiceTest.java
βββ projectMember
βΒ Β βββ ProjectMemberServiceTest.java
βββ statistics
βΒ Β βββ StatisticsServiceTest.java
βββ user
βββ UserServiceTest.java

