PlanMate는 전문직 준비생들을 위한 학습 관리 및 커뮤니티 플랫폼입니다.
사용자가 효율적으로 학습 시간을 관리하고, 학습 패턴을 분석하며, 필요한 정보를 공유할 수 있도록 다양한 기능을 제공합니다.
- 1차 개발: 2023.05 ~ 2023.08
- 2차 개발: 2024.01
역할 | 이름 |
---|---|
🖥️ FrontEnd | 이성훈 |
🛠️ BackEnd | 김호진 |
🎨 디자인 | 박소현 |
📝 기획 | 김인서 |
카테고리 | 기술/도구 |
---|---|
Front-end | React, TypeScript, Redux, styled-components |
Back-end | Java, Spring |
버전 및 이슈 관리 | Git, GitHub |
협업 도구 | Notion, Slack, Figma |
배포 서비스 | Vercel |
디자인 | Figma |
- 컴포넌트 파일: PascalCase (예: TimerButton.tsx)
- 훅 파일: camelCase, 'use' 접두사 사용 (예: useTimerItem.ts)
- 스타일 파일: styled.ts로 통일
- 유틸리티 파일: camelCase (예: dateUtils.ts)
항목 | 규칙 | 예시 |
---|---|---|
변수 | camelCase | totalTime, studyHours |
상수 | UPPER_SNAKE_CASE | MAX_HOURS |
함수 | camelCase | calculateTotalTime() |
컴포넌트 | PascalCase | PostItem |
인터페이스, 타입 | PascalCase | UserType |
이벤트 핸들러 | 'on' 접두사 사용 | onSubmit |
커밋 타입 | 설명 |
---|---|
Feat | 새로운 기능 추가 |
Fix | 버그 수정 |
Remove | 파일 삭제 |
Design | 디자인 |
Rename | 이름 변경 |
Move | 파일 이동 (디렉토리 구조 변경) |
Style | 코드 포맷팅, 세미콜론 누락 등 (코드 변경 없음) |
Refactor | 코드 리팩토링 |
Test | 테스트 코드 추가 또는 수정 |
Chore | 빌드 프로세스 또는 보조 도구 변경 |
- Typescript
- React
- Redux
- styled-components
- framer-motion
- draft-js
┣ 📂api # API 관련 함수 및 타입 정의
┣ 📂assets # 이미지, 아이콘 등 정적 자원
┣ 📂components # 재사용 가능한 React 컴포넌트
┣ 📂constants # 상수 정의
┣ 📂hooks # 커스텀 React 훅
┣ 📂modules # 상태 관리 모듈 (Redux)
┣ 📂pages # 페이지 컴포넌트
┣ 📂utils # 유틸리티 함수
┣ 📜App.tsx # 앱의 메인 컴포넌트
┣ 📜index.tsx # 앱의 진입점
┗ 📜router.tsx # 라우팅 설정
default.mp4
- 과목 추가: "과목 추가" 버튼을 통해 사용자가 새로운 과목을 추가할 수 있습니다.
- 과목 시간 측정: 각 과목별로 독립적인 타이머가 있어 공부 시간을 측정할 수 있습니다. 타이머가 실시간으로 업데이트되어 현재 공부 중인 시간을 정확히 보여줍니다.
- 과목 편집: 과목명 변경, 색상 변경 등의 편집 기능이 있습니다.
- 과목 삭제: 불필요한 과목을 삭제할 수 있습니다.
- 총 공부 시간: 좌측 상단에 오늘의 총 공부 시간이 표시됩니다.
- 과목별 공부 시간 비율: 원형 그래프를 통해 각 과목의 공부 시간 비율을 시각적으로 보여줍니다.
- 과목별 상세 시간: 각 과목별로 오늘 공부한 시간이 표시됩니다.
- D-Day 표시: D-Day 페이지에서 고정한 D-Day를 타이머 페이지에서 확인할 수 있습니다.
- D-Day 링크: D-Day 설정 페이지로의 빠른 접근을 위해 타이머 페이지에 직접 링크가 제공됩니다.
- 월별 캘린더 형태로 학습 데이터를 표시
- 각 날짜에 해당하는 학습 시간을 한눈에 확인 가능
- 날짜별 총 공부 시간에 따라 색상 강도가 달라짐
- 학습량이 많을수록 더 진한 색상으로 표시되어 직관적인 파악 가능
- 선택한 날짜의 시간대별 학습량을 그래프로 표시
- 하루 중 가장 집중적으로 학습한 시간대를 쉽게 확인 가능
- 어제와의 학습량 비교를 통한 동기부여 가능
- 원형 그래프를 통해 각 과목의 학습 시간 비율을 시각화
- 과목 간 학습 시간 균형을 한눈에 파악 가능
default.mp4
- 사용자는 캘린더에 드래그&드랍 방식으로 쉽게 학습 시간을 추가할 수 있습니다.
- 각 과목에 대해 사용자 정의 색상을 설정할 수 있어 시각적으로 구분하기 쉽습니다.
- 과목을 클릭하면 시간, 제목, 색상 등을 수정할 수 있는 편집 모달이 활성화됩니다.
- 과목 위에 마우스를 올리면 우측 상단에 삭제 버튼이 나타나며, 클릭 시 해당 과목을 삭제할 수 있습니다.
- 좌측 상단의 화살표 버튼을 클릭하여 이전 주차의 스케줄을 확인할 수 있습니다.
- 사용자는 상단의 태그를 클릭하여 관심 있는 분야의 게시물만 필터링할 수 있습니다.
- 예: #감정평가사, #회계사 등
- 각 페이지에서 최대 10개의 게시물을 표시하여 사용자가 쉽게 탐색할 수 있도록 합니다.
createPaginationNumbers
함수를 통해 페이지네이션을 최적화하여, 현재 페이지 주변의 번호를 효과적으로 표시합니다.- 총 페이지 수가 10 이하인 경우 모든 페이지 번호를 표시하며, 그 이상일 경우 현재 페이지를 중심으로 10개의 번호를 보여줍니다.
default.mp4
- draft-js를 활용한 텍스트 편집기가 구현되어 있습니다.
- 굵게(B), 기울임꼴(I), 밑줄(U) 등의 기본적인 텍스트 스타일링 옵션이 제공됩니다.
- 글자 크기 조절, 서식 지정 등의 추가 옵션도 있습니다.
- 제목 입력란 옆에 태그를 선택할 수 있는 드롭다운 메뉴가 있습니다. 현재 "#기타"가 선택되어 있습니다.
- 편집기 본문에 글을 작성할 수 있습니다. 현재 샘플 텍스트가 입력되어 있습니다.
- 페이지 하단 우측에 초록색 "등록" 버튼이 있어, 작성한 글을 게시할 수 있습니다.
- "등록" 버튼 옆에 "취소" 버튼이 있어, 글 작성을 취소하고 이전 페이지로 돌아갈 수 있습니다.
- 사용자의 이름과 이메일 주소가 상단에 표시됩니다.
- "D-DAY 관리" 섹션이 있어 중요한 날짜를 확인하고 관리할 수 있습니다.
- "더보기 >" 버튼을 통해 D-DAY 설정 페이지로 이동할 수 있습니다.
- "작성한 글" 탭에서 사용자가 작성한 게시글 목록을 확인할 수 있습니다.
- 각 게시글의 제목, 작성 날짜, 조회수, 좋아요 수, 댓글 수가 표시됩니다.
- "작성한 댓글" 탭을 통해 사용자가 작성한 댓글 목록을 볼 수 있습니다.
- "스크랩한 글" 탭에서 사용자가 스크랩한 게시글 목록을 확인할 수 있습니다.
- "작성한 글", "작성한 댓글", "스크랩한 글" 탭을 통해 각 카테고리별로 내용을 필터링할 수 있습니다.
- 게시글 목록 하단에 페이지 번호가 표시되어 여러 페이지의 내용을 탐색할 수 있습니다.
사용자의 활동 내역을 한눈에 볼 수 있게 구성되어 있으며, D-DAY 관리 기능을 통해 중요한 일정도 함께 관리할 수 있도록 설계되었습니다.
사용자는 자신의 게시글, 댓글, 스크랩한 글 등을 효과적으로 관리하고 확인할 수 있습니다.
D_DAY.mp4
- 사용자는 중요한 날짜를 D-DAY로 설정하고 관리할 수 있습니다.
- 왼쪽 패널에 설정된 D-DAY 목록이 표시됩니다.
- D-DAY를 클릭 시 해당 D-DAY로 캘린더가 이동하고 수정 모드가 활성화됩니다.
- 수정 모드에서 삭제도 가능합니다.
- D-DAY 좌측 핀 버튼 클릭 시 해당 D-DAY를 고정할 수 있습니다.
- 고정된 D-DAY는 초록색 배경을 가지며 타이머 페이지에 별도로 표시되어 강조됩니다.
- 오른쪽 패널에서 새로운 D-DAY를 추가할 수 있습니다.
- 제목 입력란에 D-DAY의 이름을 입력할 수 있습니다.
- 캘린더 인터페이스를 통해 D-DAY 날짜를 쉽게 선택할 수 있습니다.
- 연도와 월을 상단에서 선택할 수 있으며, 날짜는 캘린더에서 직접 클릭하여 선택합니다.
- 날짜 선택 후 하단의 '등록' 버튼을 클릭하여 새로운 D-DAY를 저장할 수 있습니다.
- 새로운 D-DAY가 추가되면 왼쪽 패널의 목록이 실시간으로 업데이트됩니다.
- 사용자 친화적인 인터페이스로 설계되어 있어 쉽고 빠르게 D-DAY를 관리할 수 있습니다.
- 설정된 D-DAY 정보는 타이머 페이지 등 다른 페이지에서도 표시되어 사용자가 중요한 날짜를 항상 인지할 수 있게 합니다.