Skip to content

긴급 구인구직을 간편하게 할 수 있는 플랫폼

License

Notifications You must be signed in to change notification settings

LonelyIslet/TheJulge

Repository files navigation

TheJulge

npm Version React npm Version Next.js npm Version Sass npm Version react-redux npm Version

더줄게(The Julge)는 긴급 구인구직을 간편하게 할 수 있는 플랫폼 서비스입니다.

배포 주소

이 어플리케이션은 https://www.thejulge.com에서 접속할 수 있습니다.

프로젝트 구조

thejulge
├─ .eslintignore
├─ .eslintrc.json
├─ LICENSE.md
├─ README.md
├─ app
│  ├─ auth
│  │  ├─ page.module.scss
│  │  ├─ page.scss
│  │  └─ page.tsx
│  ├─ faq
│  │  ├─ page.module.scss
│  │  └─ page.tsx
│  ├─ favicon.ico
│  ├─ fonts /
│  ├─ layout.tsx
│  ├─ my-profile
│  │  ├─ edit
│  │  │  ├─ page.module.scss
│  │  │  └─ page.tsx
│  │  ├─ layout.tsx
│  │  ├─ page.module.scss
│  │  └─ page.tsx
│  ├─ my-shop
│  │  ├─ edit
│  │  │  ├─ page.module.scss
│  │  │  └─ page.tsx
│  │  ├─ layout.tsx
│  │  ├─ page.module.scss
│  │  └─ page.tsx
│  ├─ notices
│  │  ├─ page.module.scss
│  │  └─ page.tsx
│  ├─ page.module.scss
│  ├─ page.tsx
│  ├─ privacy
│  │  ├─ page.module.scss
│  │  └─ page.tsx
│  ├─ shops
│  │  └─ [shopId]
│  │     └─ notices
│  │        ├─ [noticeId]
│  │        │  ├─ page.module.scss
│  │        │  └─ page.tsx
│  │        ├─ layout.tsx
│  │        ├─ page.module.scss
│  │        ├─ page.tsx
│  │        └─ write
│  │           ├─ layout.tsx
│  │           ├─ page.module.scss
│  │           └─ page.tsx
│  └─ signout
│     └─ page.tsx
├─ components
│  ├─ auth
│  │  ├─ AuthForm
│  │  │  ├─ AuthForm.module.scss
│  │  │  ├─ AuthForm.tsx
│  │  │  ├─ SigninForm.tsx
│  │  │  ├─ SignupForm.tsx
│  │  │  ├─ UserTypeSelect.module.scss
│  │  │  └─ UserTypeSelect.tsx
│  │  ├─ PersistGateContext
│  │  │  └─ PersistGateContext.tsx
│  │  ├─ SigninProcess
│  │  │  ├─ SigninProcess.module.scss
│  │  │  └─ SigninProcess.tsx
│  │  └─ index.ts
│  ├─ common
│  │  ├─ CardList
│  │  │  ├─ CardList.module.scss
│  │  │  └─ CardList.tsx
│  │  ├─ CommonBtn
│  │  │  ├─ CommonBtn.module.scss
│  │  │  └─ CommonBtn.tsx
│  │  ├─ CommonDetail
│  │  │  ├─ CommonDetail.module.scss
│  │  │  └─ CommonDetail.tsx
│  │  ├─ CommonLayout
│  │  │  ├─ CommonLayout.module.scss
│  │  │  └─ CommonLayout.tsx
│  │  ├─ CommonShopDescription
│  │  │  ├─ CommonShopDescription.module.scss
│  │  │  └─ CommonShopDescription.tsx
│  │  ├─ CustomInput
│  │  │  ├─ CustomInput.module.scss
│  │  │  ├─ CustomInput.tsx
│  │  │  └─ UserInput.tsx
│  │  ├─ Dropdown
│  │  │  ├─ Dropdown.module.scss
│  │  │  └─ Dropdown.tsx
│  │  ├─ Filter
│  │  │  ├─ Filter.module.scss
│  │  │  └─ Filter.tsx
│  │  ├─ GlobalFooter
│  │  │  ├─ GlobalFooter.module.scss
│  │  │  └─ GlobalFooter.tsx
│  │  ├─ GlobalNav
│  │  │  ├─ GlobalNav.module.scss
│  │  │  ├─ GlobalNav.tsx
│  │  │  ├─ NotificationButton.module.scss
│  │  │  └─ NotificationButton.tsx
│  │  ├─ InfiniteCarousel
│  │  │  ├─ InfiniteCarousel.module.scss
│  │  │  ├─ InfiniteCarousel.tsx
│  │  │  └─ ItemFrame.tsx
│  │  ├─ InputNumber
│  │  │  ├─ InputNumber.module.scss
│  │  │  └─ InputNumber.tsx
│  │  ├─ Loader
│  │  │  ├─ Loader.module.scss
│  │  │  └─ Loader.tsx
│  │  ├─ Modal
│  │  │  ├─ ErrorModalRoot.tsx
│  │  │  ├─ Modal.module.scss
│  │  │  ├─ Modal.tsx
│  │  │  └─ ModalPortal.tsx
│  │  ├─ NoticeCard
│  │  │  ├─ NoticeCard.module.scss
│  │  │  └─ NoticeCard.tsx
│  │  ├─ NotificationBoard
│  │  │  ├─ NotificationBoard.module.scss
│  │  │  └─ NotificationBoard.tsx
│  │  ├─ Pagination
│  │  │  ├─ Pagination.module.scss
│  │  │  └─ Pagination.tsx
│  │  ├─ Popover
│  │  │  └─ Popover.tsx
│  │  ├─ PostCard
│  │  │  ├─ CustomArrow
│  │  │  │  └─ CustomArrow.tsx
│  │  │  ├─ PostCard.module.scss
│  │  │  └─ PostCard.tsx
│  │  ├─ SearchBar
│  │  │  ├─ SearchBar.module.scss
│  │  │  └─ SearchBar.tsx
│  │  ├─ ShopCard
│  │  │  ├─ ShopCard.module.scss
│  │  │  └─ ShopCard.tsx
│  │  ├─ Spinner
│  │  │  ├─ Spinner.module.scss
│  │  │  └─ Spinner.tsx
│  │  ├─ StatusChip
│  │  │  ├─ StatusChip.module.scss
│  │  │  └─ StatusChip.tsx
│  │  ├─ Table
│  │  │  ├─ Table.module.scss
│  │  │  └─ Table.tsx
│  │  ├─ Toast
│  │  │  ├─ Toast.module.scss
│  │  │  ├─ Toast.tsx
│  │  │  ├─ ToastPortal.tsx
│  │  │  └─ ToastRoot.tsx
│  │  ├─ Tooltip
│  │  │  ├─ Tooltip.module.scss
│  │  │  └─ Tooltip.tsx
│  │  ├─ Twiggler
│  │  │  ├─ Twiggler.module.scss
│  │  │  └─ Twiggler.tsx
│  │  └─ index.ts
│  ├─ employee
│  │  ├─ ApplicationDetails
│  │  │  └─ ApplicationDetails.tsx
│  │  ├─ EditProfile
│  │  │  ├─ EditProfile.module.scss
│  │  │  └─ EditProfile.tsx
│  │  ├─ EmployeeNotice
│  │  │  └─ EmployeeNotice.tsx
│  │  ├─ RegisteredMyProfile
│  │  │  ├─ RegisteredMyProfile.module.scss
│  │  │  └─ RegisteredMyProfile.tsx
│  │  └─ index.ts
│  ├─ employer
│  │  ├─ EditNoticeForm
│  │  │  ├─ EditNoticeForm.module.scss
│  │  │  └─ EditNoticeForm.tsx
│  │  ├─ EmployerNotice
│  │  │  └─ EmployerNotice.tsx
│  │  ├─ FileUploater
│  │  │  ├─ FileUploader.module.scss
│  │  │  └─ FileUploader.tsx
│  │  ├─ MyNotice
│  │  │  └─ MyNotice.tsx
│  │  ├─ MyShop
│  │  │  └─ MyShop.tsx
│  │  └─ index.ts
│  ├─ hocs
│  │  ├─ index.ts
│  │  ├─ withAuth
│  │  │  └─ withAuth.tsx
│  │  └─ withUserType
│  │     └─ withUserType.tsx
│  └─ notice
│     ├─ CheckStatusButton
│     │  ├─ CheckStatusButton.module.scss
│     │  └─ CheckStatusButton.tsx
│     ├─ EmployeeTable
│     │  └─ EmployeeTable.tsx
│     ├─ EmployerTable
│     │  └─ EmployerTable.tsx
│     ├─ FilterButton
│     │  ├─ FilterButton.module.scss
│     │  └─ FilterButton.tsx
│     ├─ HomePageHero
│     │  └─ HomePageHero.tsx
│     ├─ HomePageMain
│     │  ├─ HomePageMain.module.scss
│     │  └─ HomePageMain.tsx
│     ├─ RecommendedNoticeList
│     │  ├─ DefaultRecommendedList.module.scss
│     │  ├─ DefaultRecommendedList.tsx
│     │  ├─ RecommendedNoticeList.module.scss
│     │  └─ RecommendedNoticeList.tsx
│     ├─ SortButton
│     │  ├─ SortButton.module.scss
│     │  ├─ SortButton.tsx
│     │  └─ SortDropdown
│     │     ├─ SortDropdown.module.scss
│     │     └─ SortDropdown.tsx
│     └─ index.ts
├─ constants
│  ├─ auth
│  │  └─ user.ts
│  ├─ dropdown
│  │  └─ dropdownData.ts
│  ├─ mock
│  │  ├─ alerts.json
│  │  ├─ notice.json
│  │  └─ noticeList.json
│  └─ notice
│     ├─ index.ts
│     ├─ options
│     │  ├─ LIMIT.ts
│     │  └─ SORT_OPTIONS.ts
│     └─ tables
│        └─ columns.ts
├─ hooks
│  ├─ api
│  │  ├─ alert
│  │  │  └─ useReadAlert.ts
│  │  ├─ application
│  │  │  ├─ useAcceptApplication.ts
│  │  │  ├─ useCancelApplication.ts
│  │  │  ├─ usePostApplication.ts
│  │  │  └─ useRejectApplication.ts
│  │  ├─ auth
│  │  │  ├─ useSignin.ts
│  │  │  └─ useSignup.ts
│  │  ├─ image
│  │  │  └─ usePostImageName.ts
│  │  ├─ notice
│  │  │  ├─ usePostNotice.ts
│  │  │  └─ useUpdateNotice.ts
│  │  ├─ shop
│  │  │  ├─ usePostShop.ts
│  │  │  └─ useUpdateShop.ts
│  │  └─ user
│  │     ├─ useLazyGetUserInfo.ts
│  │     └─ useUpdateProfile.ts
│  ├─ useDisableDraggableChildren.ts
│  ├─ useDropdown.ts
│  ├─ useErrorModal.ts
│  ├─ useInputValidation.ts
│  ├─ useIntersectionObserver.ts
│  ├─ useMediaQuery.ts
│  ├─ useOutsideClick.ts
│  ├─ useResponsiveNavbar.ts
│  └─ useToast.ts
├─ package-lock.json
├─ package.json
├─ public
│  ├─ data
│  │  ├─ dropdownAddress.json
│  │  └─ dropdownShopCategory.json
│  └─ images /
├─ redux
│  ├─ StoreProvider.tsx
│  ├─ api
│  │  ├─ alertApi.ts
│  │  ├─ applicationApi.ts
│  │  ├─ authApi.ts
│  │  ├─ imageApi.ts
│  │  ├─ noticeApi.ts
│  │  ├─ shopApi.ts
│  │  └─ userApi.ts
│  ├─ hooks
│  │  ├─ useAppDispatch.ts
│  │  └─ useAppSelector.ts
│  ├─ slices
│  │  ├─ apiSlice.ts
│  │  ├─ errorModalSlice.ts
│  │  ├─ toastSlice.ts
│  │  └─ userSlice.ts
│  └─ store.ts
├─ styles
│  ├─ globals.scss
│  ├─ local.font.ts
│  ├─ mixins.scss
│  └─ variables.scss
├─ tsconfig.json
├─ types
│  ├─ dto.ts
│  ├─ enums
│  │  ├─ apply.enum.ts
│  │  ├─ button.enum.ts
│  │  ├─ detailPage.enum.ts
│  │  ├─ inputValidation.enum.ts
│  │  ├─ modal.enum.ts
│  │  ├─ sort.enum.ts
│  │  └─ user.enum.ts
│  ├─ global.d.ts
│  ├─ notice
│  │  ├─ queries.ts
│  │  └─ tables.ts
│  └─ shop
│     └─ address.ts
└─ utils
   ├─ api
   │  └─ getNotices.ts
   ├─ common
   │  ├─ calculatePercentage.ts
   │  ├─ convertToArray.ts
   │  ├─ dateToStr.ts
   │  ├─ formatStringNumberWithCommas.ts
   │  ├─ formatTimeRange.ts
   │  ├─ getBgColorClass.ts
   │  ├─ getFirstValue.ts
   │  ├─ inputValidation.ts
   │  ├─ predicateErrorType.ts
   │  └─ showElapsedTime.ts
   ├─ fomattingStringToDate.ts
   ├─ formattingData.ts
   ├─ formattingStringTonumber.ts
   └─ notices
      ├─ generateAPIQuery.ts
      └─ generateNoticesPageQuery.ts

  • app/: Next 앱 라우터 파일을 저장하는 디렉토리
  • components/: React 컴포넌트를 저장하는 디렉토리
  • constants/: 상수를 저장하는 디렉토리
  • hooks/: 커스텀 훅 함수를 저장하는 디렉토리
  • public/: 정적 파일을 저장하는 디렉토리
  • redux/: 리덕스 관련 파일을 저장하는 디렉토리
  • styles/: 글로벌 스타일 관련 파일을 저장하는 디렉토리
  • types/: 타입과 관련된 파일을 저장하는 디렉토리
  • utils/: 함수를 저장하는 디렉토리

라이센스

이 프로젝트는 MIT Licence에 따라 라이센스가 부여됩니다. 자세한 내용은 LICENSE.md 파일을 참조하십시오.

진행 상황

  • 보일러 플레이트
  • 린트 설정
  • 라이브러리 설치
  • public assets 추출
  • 랜딩 페이지 작성
  • 리소스 완성
  • 공고 페이지 완성
  • 가게 정보 상세 페이지 완성
  • 가게 정보 등록/수정 페이지 완성
  • 공고 등록/수정 페이지 완성
  • 사장/공고 상세 페이지 완성
  • 알바/공고 상세 페이지 완성
  • 내 프로필 상세 페이지 완성
  • 내 프로필 등록/수정 페이지 완성
  • 퍼포먼스 확인 및 리팩토링

About

긴급 구인구직을 간편하게 할 수 있는 플랫폼

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •