Skip to content

Daily1Hour/PickMe-Record-Application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pickmeIcon

기록 마이크로 프론트엔드

PickMe

📜목차


기록 페이지 소개

Pick-Me는 면접 예상 질문 답변을 작성해 면접에 대비하고 지난 면접을 스스로 분석 및 회고함으로써 취업 역량 강화를 장려하는 사이트 입니다.

기록 페이지에서는 자신이 쓴 이력서를 참고하면서 면접에 대한 예상 질문과 그에 따른 답변을 먼저 정리하면서 대비할 수 있습니다.

🔗 기록 페이지 바로가기
🔗 배포된 통합 웹 사이트 바로가기

새 창 열기 : CTRL+Click (Windows and Linux) / CMD+Click (MacOS)


✨주요 기능

기능 내용
기록 지원할 회사, 면접 유형에 따라서 예상 질문 답변을 입력할 수 있는 폼 제공
이력서 미리보기 따로 창을 추가할 필요 없이 내가 쓴 이력서를 페이지 내에서 보면서 참고 할 수 있는 pdf 폼 제공

🎥데모

-.Clipchamp.mp4

🛠기술 스택

카테고리 스택
모듈 Single-SPAModule Federation
언어 TypeScriptHTML5CSS3
SPA React
SPA 라이브러리 React RouterReact QueryReact Hook Form
Zustand
애플리케이션 라이브러리 YupAxios
UI 라이브러리 Chakra UI
빌드 Vite
개발 도구 PostmanSteigerESLintPrettier
문서 StorybookFigma

🧩컴포넌트 구성

📝Figma

image


📄구현된 페이지

pickmeRecord


📁폴더 구조

pickme
├─ .env # 환경변수
├─ .env.sample
├─ .env.single-spa
├─ .prettierrc # 포맷터
├─ eslint.config.js
├─ index.html
├─ src
│  ├─ app
│  │  ├─ App.tsx
│  │  ├─ application.tsx # single-spa 진입점
│  │  ├─ main.tsx
│  │  ├─ parcel.tsx
│  │  └─ router.tsx # 라우터
│  ├─ entities # 프로젝트 엔터티
│  │  └─ records
│  │     └─ model
│  │        ├─ Detail.ts
│  │        ├─ index.ts
│  │        ├─ Record.ts # 인터페이스
│  │        └─ Summary.ts
│  ├─ features # 기능 구현
│  │  ├─ records
│  │  │  ├─ api
│  │  │  │  ├─ detailsApi.ts # 데이터 조회, 생성, 삭제
│  │  │  │  └─ recordsDTOList.ts # 데이터 전송 객체
│  │  │  ├─ hook
│  │  │  │  ├─ useQaMutation.ts # Qa폼에서 사용할 데이터 관리, 처리
│  │  │  │  └─ useRecordMutation.ts # Record폼에서 사용할 데이터 관리, 처리
│  │  │  ├─ index.tsx
│  │  │  ├─ model # 폼 스키마
│  │  │  │  └─ RecordSchema.ts
│  │  │  ├─ service # 레코드 관련 엔터티<->dto 변환 메소드
│  │  │  │  ├─ detailToDto.ts
│  │  │  │  ├─ dtoToRecord.ts
│  │  │  │  ├─ index.ts
│  │  │  │  ├─ recordToDto.test.ts
│  │  │  │  └─ recordToDto.ts
│  │  │  ├─ store # 중앙 상태 저장소
│  │  │  │  └─ recodStore.ts
│  │  │  └─ ui
│  │  │     ├─ AddDetail.tsx # 세부정보(질문/답변) 필드 추가 버튼
│  │  │     ├─ DeleteConfirm.tsx # 삭제 확인 경고성 다이얼로그
│  │  │     ├─ DeleteDetail.tsx # 세부정보 삭제 버튼
│  │  │     ├─ EditableControl.tsx
│  │  │     ├─ EditableField.tsx
│  │  │     ├─ index.ts
│  │  │     ├─ LabelForm.tsx # 라벨(회사명/면접유형) 폼
│  │  │     ├─ PDFUploadForm.tsx # pdf 미리보기 폼
│  │  │     ├─ QaField.tsx # 질문/답변 필드
│  │  │     ├─ QaForm.tsx # 질문/답변 관리 컴포넌트
│  │  │     └─ RecordForm.tsx # 레코드 전체 관리 컴포넌트
│  │  └─ side
│  │     ├─ api
│  │     │  └─ sideApi.ts # 사이드바 데이터 가져오기
│  │     ├─ hook
│  │     │  └─ usePagination.ts # 페이지네이션
│  │     ├─ index.tsx # 사이드바 컴포넌트
│  │     └─ service # 사이드바 엔터티<->dto 변환 메소드
│  │        ├─ dtoToSide.ts
│  │        └─ index.ts
│  ├─ pages # 페이지
│  │  └─ records
│  │     └─ index.tsx
│  └─ shared # 공유
│     ├─ api
│     │  ├─ client.ts # Axios 인스턴스
│     │  ├─ index.ts
│     │  ├─ router.ts # 의존성 역전(DIP), 의존성 주입
│     │  └─ tokens.ts # 토큰 3종 호출 및 추출
│     └─ chakra-ui
│        ├─ color-mode.tsx
│        ├─ Field.tsx
│        ├─ input-group.tsx
│        ├─ provider.tsx
│        └─ toaster.tsx
├─ steiger.config.ts # FSD 린트
├─ styleguide-types.d.ts
├─ tsconfig.app.json
├─ tsconfig.json
├─ tsconfig.node.json
├─ typedoc.json
├─ vite-env.d.ts # 환경변수 타입 정의
└─ vite.config.ts # Vite 설정

📖기록 프론트엔드 실행 가이드

🔗 기록 서비스 백엔드 깃허브 바로가기

$ npm install
$ npm run dev

About

기록 서비스 마이크로 프론트엔드

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •