Skip to content

goldapple-ce/Pangarm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚖ 판가름 소개

Introduce


"상황 맞춤 판례 제공 서비스, 판가름"

대상

  • 법을 잘 모르는 일반인

배경

  • 기존의 판례 제공 사이트는 판례 전문을 제공하므로 일반 사용자가 읽기 어려움
  • 판례 분류로만 검색이 가능하기에 특정 상황에 대한 판례 검색 어려움

🏁 제공 서비스

판례 검색 제공

  • 사용자가 상황을 설명하면, 우리의 시스템이 이를 분석하여 해당 상황에 관련된 판례를 추천합니다.
  • 사용자의 상황을 이해하고 필요한 정보를 제공하여 법률적 문제를 해결하는데 도움을 줍니다.

맞춤 뉴스 제공

  • 사용자의 검색 및 활동 기록을 기반으로 개인화된 뉴스 추천을 제공합니다.
  • 이를 통해 사용자는 자신의 관심사에 맞는 최신 뉴스를 발견할 수 있습니다.

🏆 주요 기능

회원 서비스

  • 회원 가입
  • 로그인

판례 서비스

  • 서술형 판례 검색
  • 판례 요약본 제공
  • 판례 상세본 제공
  • 판례 북마크 제공
  • 판례 히스토리 제공
  • 검색 히스토리 제공

뉴스 서비스

  • 법 관련 최신 뉴스 제공
  • 구독한 카테고리에 대한 뉴스레터 메일 전송

👩‍💻 개발 환경

✔️Frond-end

✔️Back-end

✔️Data

✔️Infra



💎 서비스 아키텍처

Alt text


🔧 ERD

ERD


👪 팀원 소개

김관우 프로필 김민준 프로필 강용민 프로필 김도현 프로필 한지원 프로필
김관우 김민준 강용민 감도현 한지원

📁 프로젝트 파일 구조

Front-end

📦frontend
 ┣ 📂public
 ┃ ┣ 📜Logo.svg
 ┃ ┗ 📜mockServiceWorker.js
 ┣ 📂src
 ┃ ┣ 📂assets
 ┃ ┃ ┣ 📂fonts
 ┃ ┃ ┃ ┣ 📜GmarketSansTTFBold.ttf
 ┃ ┃ ┃ ┣ 📜GmarketSansTTFLight.ttf
 ┃ ┃ ┃ ┣ 📜GmarketSansTTFMedium.ttf
 ┃ ┃ ┃ ┣ 📜HakgyoansimBareondotumR.ttf
 ┃ ┃ ┃ ┣ 📜YoonGothic310.ttf
 ┃ ┃ ┃ ┗ 📜윤고딕310-smha1177.ttf
 ┃ ┃ ┣ 📂imgs
 ┃ ┃ ┃ ┣ 📜Logo.svg
 ┃ ┃ ┃ ┗ 📜Symbol.svg
 ┃ ┃ ┗ 📂lotties
 ┃ ┃ ┃ ┣ 📜BookmarkAnimation-2.json
 ┃ ┃ ┃ ┣ 📜BookmarkAnimation.json
 ┃ ┃ ┃ ┣ 📜Error404Animation.json
 ┃ ┃ ┃ ┣ 📜Error500Animation.json
 ┃ ┃ ┃ ┣ 📜ErrorEmptyAnimation.json
 ┃ ┃ ┃ ┣ 📜LoadingAnimation.json
 ┃ ┃ ┃ ┣ 📜PrecedentLoadingAnimation.json
 ┃ ┃ ┃ ┣ 📜SigninAnimation.json
 ┃ ┃ ┃ ┗ 📜SignupAnimation.json
 ┃ ┣ 📂components
 ┃ ┃ ┣ 📂Error
 ┃ ┃ ┃ ┣ 📜Error404Animation.tsx
 ┃ ┃ ┃ ┣ 📜Error500Animation.tsx
 ┃ ┃ ┃ ┗ 📜ErrorEmptyAnimation.tsx
 ┃ ┃ ┣ 📂Main
 ┃ ┃ ┃ ┣ 📜HistoryList.tsx
 ┃ ┃ ┃ ┣ 📜HistoryListItem.tsx
 ┃ ┃ ┃ ┣ 📜MainGuest.tsx
 ┃ ┃ ┃ ┣ 📜MainMember.tsx
 ┃ ┃ ┃ ┗ 📜MainSearchForm.tsx
 ┃ ┃ ┣ 📂MyPage
 ┃ ┃ ┃ ┣ 📜MyPageCategory.tsx
 ┃ ┃ ┃ ┣ 📜MyPageCategoryList.tsx
 ┃ ┃ ┃ ┣ 📜MyPageEditProfile.tsx
 ┃ ┃ ┃ ┣ 📜MyPageEditProfileBody.tsx
 ┃ ┃ ┃ ┣ 📜MyPageEditProfileFooter.tsx
 ┃ ┃ ┃ ┣ 📜MyPageEditProfileHeader.tsx
 ┃ ┃ ┃ ┣ 📜MyPageNewsList.tsx
 ┃ ┃ ┃ ┣ 📜MyPageNewsListItem.tsx
 ┃ ┃ ┃ ┣ 📜MyPagePrecedent.tsx
 ┃ ┃ ┃ ┗ 📜MyPageSubscribedCategory.tsx
 ┃ ┃ ┣ 📂News
 ┃ ┃ ┃ ┣ 📜CategoryButton.tsx
 ┃ ┃ ┃ ┣ 📜CategoryNews.tsx
 ┃ ┃ ┃ ┣ 📜CategoryNewsList.tsx
 ┃ ┃ ┃ ┣ 📜CategoryNewsListItem.tsx
 ┃ ┃ ┃ ┣ 📜LatestNews.tsx
 ┃ ┃ ┃ ┣ 📜LatestNewsList.tsx
 ┃ ┃ ┃ ┗ 📜LatestNewsListItem.tsx
 ┃ ┃ ┣ 📂NewsDetail
 ┃ ┃ ┃ ┣ 📜NewsDetail.tsx
 ┃ ┃ ┃ ┣ 📜NewsDetailCategoryList.tsx
 ┃ ┃ ┃ ┣ 📜NewsDetailCategoryListItem.tsx
 ┃ ┃ ┃ ┣ 📜SimilarNews.tsx
 ┃ ┃ ┃ ┣ 📜SimilarNewsList.tsx
 ┃ ┃ ┃ ┗ 📜SimilarNewsListItem.tsx
 ┃ ┃ ┣ 📂Precedent
 ┃ ┃ ┃ ┣ 📜PrecedentDetail.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentDetailBox.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentDetailRaw.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentDetailSummary.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentList.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentListItem.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentListItemOrderSelect.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentSearchBar.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentSearchCondition.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentSearchDateRangePicker.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentSearchKeywordToggleButton.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentSearchSimilaritySlider.tsx
 ┃ ┃ ┃ ┣ 📜PrecedentSearchToggleSlider.tsx
 ┃ ┃ ┃ ┗ 📜SearchContext.tsx
 ┃ ┃ ┣ 📂SignIn
 ┃ ┃ ┃ ┣ 📜SignInAnimation.tsx
 ┃ ┃ ┃ ┗ 📜SignInForm.tsx
 ┃ ┃ ┣ 📂SignUp
 ┃ ┃ ┃ ┣ 📜SignUpAnimation.tsx
 ┃ ┃ ┃ ┣ 📜SignUpForm.tsx
 ┃ ┃ ┃ ┣ 📜SignUpFormFooter.tsx
 ┃ ┃ ┃ ┣ 📜SignUpFormHeader.tsx
 ┃ ┃ ┃ ┗ 📜SignUpFormMain.tsx
 ┃ ┃ ┣ 📜LoadingAnimation.tsx
 ┃ ┃ ┣ 📜PrecedentItem.tsx
 ┃ ┃ ┣ 📜PrecedentLoadingAnimation.tsx
 ┃ ┃ ┗ 📜Tabs.tsx
 ┃ ┣ 📂constants
 ┃ ┃ ┣ 📜index.ts
 ┃ ┃ ┗ 📜regex.ts
 ┃ ┣ 📂layouts
 ┃ ┃ ┣ 📂Footer
 ┃ ┃ ┃ ┗ 📜Footer.tsx
 ┃ ┃ ┗ 📂Header
 ┃ ┃ ┃ ┣ 📜Header.tsx
 ┃ ┃ ┃ ┣ 📜HeaderLeft.tsx
 ┃ ┃ ┃ ┣ 📜HeaderLogo.tsx
 ┃ ┃ ┃ ┗ 📜HeaderRight.tsx
 ┃ ┣ 📂mocks
 ┃ ┃ ┣ 📜browser.ts
 ┃ ┃ ┣ 📜ErrorMessage.ts
 ┃ ┃ ┣ 📜memberHandlers.ts
 ┃ ┃ ┣ 📜newsHandlers.ts
 ┃ ┃ ┗ 📜precedentHandler.ts
 ┃ ┣ 📂pages
 ┃ ┃ ┣ 📜MainPage.tsx
 ┃ ┃ ┣ 📜MyInfoPage.tsx
 ┃ ┃ ┣ 📜NewsDetailPage.tsx
 ┃ ┃ ┣ 📜NewsPage.tsx
 ┃ ┃ ┣ 📜PrecedentSearchPage.css
 ┃ ┃ ┣ 📜PrecedentSearchPage.tsx
 ┃ ┃ ┣ 📜SignInPage.tsx
 ┃ ┃ ┗ 📜SignUpPage.tsx
 ┃ ┣ 📂routes
 ┃ ┃ ┗ 📜router.tsx
 ┃ ┣ 📂services
 ┃ ┃ ┣ 📜authService.ts
 ┃ ┃ ┣ 📜newsService.ts
 ┃ ┃ ┣ 📜precedent.test.ts
 ┃ ┃ ┗ 📜precedentService.ts
 ┃ ┣ 📂stores
 ┃ ┃ ┣ 📜authStore.ts
 ┃ ┃ ┗ 📜situationStore.ts
 ┃ ┣ 📂utils
 ┃ ┃ ┣ 📜extractUtils.ts
 ┃ ┃ ┣ 📜formatUtils.ts
 ┃ ┃ ┗ 📜http-commons.ts
 ┃ ┣ 📜App.tsx
 ┃ ┣ 📜index.css
 ┃ ┣ 📜main.tsx
 ┃ ┣ 📜types.d.ts
 ┃ ┗ 📜vite-env.d.ts
 ┣ 📜.eslintrc.cjs
 ┣ 📜.gitignore
 ┣ 📜.prettierrc
 ┣ 📜index.html
 ┣ 📜package-lock.json
 ┣ 📜package.json
 ┣ 📜postcss.config.js
 ┣ 📜README.md
 ┣ 📜tailwind.config.js
 ┣ 📜tsconfig.json
 ┣ 📜tsconfig.node.json
 ┗ 📜vite.config.ts

Back-end

📦pangarm
 ┗ 📂backend
 ┃ ┣ 📂application
 ┃ ┃ ┣ 📂category
 ┃ ┃ ┃ ┗ 📂dto
 ┃ ┃ ┃ ┃ ┗ 📂request
 ┃ ┃ ┣ 📂client
 ┃ ┃ ┃ ┣ 📜PrecedentFetchAPI.java
 ┃ ┃ ┃ ┣ 📜SearchPrecedentClientRequest.java
 ┃ ┃ ┃ ┗ 📜SearchPrecedentClientResponse.java
 ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┣ 📜MemberController.java
 ┃ ┃ ┃ ┣ 📜NewsController.java
 ┃ ┃ ┃ ┗ 📜PrecedentController.java
 ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┣ 📜CategoryRegisterRequest.java
 ┃ ┃ ┃ ┃ ┣ 📜CategoryUpdateRequest.java
 ┃ ┃ ┃ ┃ ┣ 📜MemberSignInRequest.java
 ┃ ┃ ┃ ┃ ┣ 📜MemberSignUpRequest.java
 ┃ ┃ ┃ ┃ ┗ 📜PrecedentSearchRequest.java
 ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┣ 📜MemberFindByIdResponse.java
 ┃ ┃ ┃ ┃ ┣ 📜MemberSubscribeInfo.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentBookmarkedResponse.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentResponse.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentSearchDetailClientResponse.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentSearchHistoryResponse.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentSearchResponse.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentSearchSummaryClientResponse.java
 ┃ ┃ ┃ ┃ ┗ 📜PrecedentViewedResponse.java
 ┃ ┃ ┣ 📂facade
 ┃ ┃ ┃ ┣ 📜MemberFacade.java
 ┃ ┃ ┃ ┣ 📜NewsFacade.java
 ┃ ┃ ┃ ┗ 📜PrecedentFacade.java
 ┃ ┃ ┗ 📂runner
 ┃ ┃ ┃ ┣ 📂fixture
 ┃ ┃ ┃ ┃ ┣ 📜CaseTypeFixture.java
 ┃ ┃ ┃ ┃ ┣ 📜MemberFixture.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentBookmarkFixture.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentFixture.java
 ┃ ┃ ┃ ┃ ┣ 📜PrecedentTypeFixture.java
 ┃ ┃ ┃ ┃ ┗ 📜SearchHistoryFixture.java
 ┃ ┃ ┃ ┣ 📜BackendApplicationRunner.java
 ┃ ┃ ┃ ┣ 📜CaseTypeListVo.java
 ┃ ┃ ┃ ┣ 📜CategoryListVo.java
 ┃ ┃ ┃ ┗ 📜InitialFacade.java
 ┃ ┣ 📂domain
 ┃ ┃ ┣ 📂auth
 ┃ ┃ ┃ ┣ 📜AuthException.java
 ┃ ┃ ┃ ┗ 📜MemberDetailService.java
 ┃ ┃ ┣ 📂caseType
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜CaseType.java
 ┃ ┃ ┃ ┣ 📜CaseTypeException.java
 ┃ ┃ ┃ ┣ 📜CaseTypeRepository.java
 ┃ ┃ ┃ ┗ 📜CaseTypeService.java
 ┃ ┃ ┣ 📂category
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜Category.java
 ┃ ┃ ┃ ┣ 📜CategoryException.java
 ┃ ┃ ┃ ┣ 📜CategoryRepository.java
 ┃ ┃ ┃ ┣ 📜CategoryService.java
 ┃ ┃ ┃ ┗ 📜CategoryServiceImpl.java
 ┃ ┃ ┣ 📂member
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┣ 📜Member.java
 ┃ ┃ ┃ ┃ ┗ 📜Role.java
 ┃ ┃ ┃ ┣ 📜MemberException.java
 ┃ ┃ ┃ ┣ 📜MemberRepository.java
 ┃ ┃ ┃ ┣ 📜MemberService.java
 ┃ ┃ ┃ ┗ 📜MemberServiceImpl.java
 ┃ ┃ ┣ 📂membercategory
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜MemberCategory.java
 ┃ ┃ ┃ ┣ 📜MemberCategoryException.java
 ┃ ┃ ┃ ┣ 📜MemberCategoryRepository.java
 ┃ ┃ ┃ ┣ 📜MemberCategoryService.java
 ┃ ┃ ┃ ┗ 📜MemberCategoryServiceImpl.java
 ┃ ┃ ┣ 📂news
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜News.java
 ┃ ┃ ┃ ┣ 📜CustomNewsRepository.java
 ┃ ┃ ┃ ┣ 📜CustomNewsRepositoryImpl.java
 ┃ ┃ ┃ ┣ 📜NewsRepository.java
 ┃ ┃ ┃ ┣ 📜NewsService.java
 ┃ ┃ ┃ ┗ 📜NewsServiceImpl.java
 ┃ ┃ ┣ 📂precedent
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┣ 📜CaseNumber.java
 ┃ ┃ ┃ ┃ ┗ 📜Precedent.java
 ┃ ┃ ┃ ┣ 📜PrecedentException.java
 ┃ ┃ ┃ ┣ 📜PrecedentRepository.java
 ┃ ┃ ┃ ┗ 📜PrecedentService.java
 ┃ ┃ ┣ 📂precedentBookmark
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜PrecedentBookmark.java
 ┃ ┃ ┃ ┣ 📜PrecedentBookmarkException.java
 ┃ ┃ ┃ ┣ 📜PrecedentBookmarkRepository.java
 ┃ ┃ ┃ ┗ 📜PrecedentBookmarkService.java
 ┃ ┃ ┣ 📂precedentType
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜PrecedentType.java
 ┃ ┃ ┃ ┣ 📜PrecedentTypeException.java
 ┃ ┃ ┃ ┣ 📜PrecedentTypeRepository.java
 ┃ ┃ ┃ ┗ 📜PrecedentTypeService.java
 ┃ ┃ ┣ 📂searchHistory
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜SearchHistory.java
 ┃ ┃ ┃ ┣ 📜SearchHistoryException.java
 ┃ ┃ ┃ ┣ 📜SearchHistoryRepository.java
 ┃ ┃ ┃ ┗ 📜SearchHistoryService.java
 ┃ ┃ ┣ 📂searchHistoryPrecedent
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜SearchHistoryPrecedent.java
 ┃ ┃ ┃ ┣ 📜SearchHistoryOption.java
 ┃ ┃ ┃ ┣ 📜SearchHistoryPrecedentException.java
 ┃ ┃ ┃ ┣ 📜SearchHistoryPrecedentRepository.java
 ┃ ┃ ┃ ┗ 📜SearchHistoryPrecedentService.java
 ┃ ┃ ┣ 📂searchHistoryPrecedentKeyword
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜PrecedentKeyword.java
 ┃ ┃ ┃ ┣ 📜PrecedentKeywordRepository.java
 ┃ ┃ ┃ ┗ 📜PrecedentKeywordService.java
 ┃ ┃ ┗ 📂viewingHistory
 ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┗ 📜ViewingHistory.java
 ┃ ┃ ┃ ┣ 📜ViewingHistoryException.java
 ┃ ┃ ┃ ┣ 📜ViewingHistoryRepository.java
 ┃ ┃ ┃ ┗ 📜ViewingHistoryService.java
 ┃ ┣ 📂global
 ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┣ 📜ClientConfig.java
 ┃ ┃ ┃ ┣ 📜ElasticSearchConfig.java
 ┃ ┃ ┃ ┣ 📜OpenAPIConfig.java
 ┃ ┃ ┃ ┗ 📜SecurityConfig.java
 ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┗ 📜BaseEntity.java
 ┃ ┃ ┣ 📂error
 ┃ ┃ ┃ ┣ 📂exception
 ┃ ┃ ┃ ┃ ┗ 📜BusinessException.java
 ┃ ┃ ┃ ┣ 📜ErrorCode.java
 ┃ ┃ ┃ ┣ 📜ErrorResponse.java
 ┃ ┃ ┃ ┗ 📜GlobalExceptionHandler.java
 ┃ ┃ ┣ 📂filter
 ┃ ┃ ┃ ┣ 📜AuthenticationFilter.java
 ┃ ┃ ┃ ┣ 📜AuthorizationExceptionHandler.java
 ┃ ┃ ┃ ┣ 📜CustomAccessDeniedHandler.java
 ┃ ┃ ┃ ┣ 📜CustomAuthenticationEntryPoint.java
 ┃ ┃ ┃ ┗ 📜JwtAuthorizationFilter.java
 ┃ ┃ ┣ 📂jwt
 ┃ ┃ ┃ ┣ 📜JwtToken.java
 ┃ ┃ ┃ ┗ 📜TokenProvider.java
 ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┗ 📂api
 ┃ ┃ ┃ ┃ ┣ 📜ApiResponse.java
 ┃ ┃ ┃ ┃ ┗ 📜ResponseCode.java
 ┃ ┗ 📜BackendApplication.java

🏁 실행 방법

실행 방법 링크

🌐 산출물

컨벤션
요구사항 정의서
기능 명세서
화면 정의서
화면 흐름도
팀 노션