Skip to content

☕️카페 크루의 일상적인 고민을 해결하는 스마트한 근무 관리 플랫폼입니다.

Notifications You must be signed in to change notification settings

Dev-FE-2/toy-project2-team4-dayus

Repository files navigation

TEAM4 - Day Us

☕️ 프로젝트 소개

Thumbnail

카페 크루의 일상적인 고민을 해결하는 스마트한 근무 관리 플랫폼입니다.

내 근무 일정도 급여도 한 번에 확인하고 스마트하게 근무해보자❗️

 

🔧 기술 스택

Type Tool
Library React VITE
Language TypeScript
Styling styled-components
BaaS Firebase
State Management Redux
Formatting ESLint Prettier
Package Manager npm
Version Control Git GitHub
Collaboration Slack Notion

 

🔨 프로젝트 설정 및 실행 방법

1. 프로젝트 클론하기

먼저, Git 저장소에서 프로젝트를 로컬로 클론해야 합니다. 터미널(또는 명령 프롬프트)을 열고 아래 명령어를 입력합니다.

git clone https://github.com/Dev-FE-2/toy-project2-team4-dayus.git

해당 명령어는 지정된 Git 저장소에서 프로젝트를 로컬 컴퓨터로 복사해옵니다.

2. 의존성 설치

프로젝트가 로컬에 클론된 후, 프로젝트 폴더로 이동한 다음, 필요한 패키지들을 설치해야 합니다. Node.js 기반 프로젝트인 경우, npm 명령어를 사용하여 의존성을 설치할 수 있습니다.

npm install

이 명령어는 package.json 파일에 정의된 모든 의존성(dependencies)을 자동으로 설치해 줍니다.

3. 개발 서버 실행

모든 의존성이 설치되면, 개발 서버를 실행하여 프로젝트를 로컬에서 테스트할 수 있습니다.

npm run dev

이 명령어를 통해 개발 모드에서 서버를 시작하며, 변경 사항이 있을 때 자동으로 갱신됩니다. 이후, 브라우저에서 http://localhost:5173 주소로 접속하여 애플리케이션을 확인할 수 있습니다.

 

🔑 테스트 계정 정보

 

💞 우리의 컨벤션

파일 컨벤션

  • 폴더명: lowercase 또는 kebab-case
  • 파일명: PascalCase

코드 컨벤션

  • 함수: const FunctionName = () => {} / export default FunctionName;
  • 변수명: camelCase
  • 상수명: UPPER_SNAKE_CASE

커밋 컨벤션

  • feat: 새로운 기능 추가
  • style: css 수정 및 코드의 의미에 영향을 미치지 않는 변경사항
  • fix: 버그 수정
  • refactor: 리팩토링, 기능 변화 없이 코드 구조 개선
  • chore: 코드 수정 외 잡다한 작업 (빌드 과정이나 설정 변경 등)
  • docs: 문서 변경
  • test: 테스트 코드 추가 또는 수정
  • revert: 이전 커밋을 되돌림

정해진 규칙에 따라 자동적으로 코드 스타일을 정리해 코드의 일관성을 유지하고자 했습니다.
코드 품질 관리는 eslint로, 코드 포맷팅은 prettier로, 커밋 메시지 관리는 commitlint로 했습니다. 팀원들과 소통하여 코딩 컨벤션을 구축했습니다.
그리고 husky를 사용해 규칙에 맞지 않으면 커밋을 제한했습니다.

브랜치 전략

main, develop 브랜치와 feat 보조 브랜치를 사용했습니다.

  • main: 배포 단계에서만 사용하는 브랜치
  • develop: 개발 단계에서 main 역할을 하는 브랜치
  • feat: 기능 단위로 독립적인 개발 환경을 위하여 사용하고 merge 후 각 브랜치를 삭제
    • feat 브랜치 이름 규칙: feat/기능명 e.g. feat/calendar-event-add

 

⏰ 프로젝트 진행 과정

기획 (2024.11.22 ~ 2024.11.26)

프로젝트의 방향성을 설정하고 핵심 기능을 정의하는 시간을 가졌습니다. 팀원들과 함께 요구사항 명세서를 작성하고 서비스 플로우를 구체화했습니다.

와이어프레임 제작 (2024.11.27 ~ 2024.11.29)

정의된 기능 명세를 바탕으로 Figma를 활용하여 와이어프레임을 제작했습니다. 프로젝트의 일관성을 위해 디자인 시스템을 구축하고 컴포넌트를 설계했습니다.

개발 및 기능 구현 (2024.12.02 ~ 2024.12.12)

설계된 와이어프레임을 기반으로 핵심 기능을 구현했습니다. 재사용 가능한 UI 컴포넌트들을 직접 설계하고 개발한 후, 세부 기능을 단계적으로 구현했습니다. 매일 아침 데일리 스크럼을 통해 진행 상황을 공유하고, 팀원 간 적극적인 코드 리뷰를 진행했습니다.

파이어베이스 연동 (2024.12.12 ~ 2024.12.16)

MSW(Mock Service Worker)를 활용하여 API 통신을 테스트하고, Firebase SDK를 연동하여 실제 데이터베이스와의 연결을 구현했습니다.

리팩토링 (2024.12.17 ~ 2024.12.19)

코드 품질 향상을 위한 리팩토링을 진행하고, 발견된 버그를 수정했습니다. 또한, 성능 최적화 작업도 함께 진행했습니다.

 

💿 데이터 구조

image

ERDCloud를 활용하여 데이터 간의 관계와 타입을 정의했습니다. Firebase Firestore의 NoSQL 특성을 고려하여 효율적인 데이터 구조를 설계했습니다.

 

🚀 주요 기능

📱 모바일 퍼스트

  • 모바일 퍼스트 웹 서비스로 개발을 진행했습니다.
  • 카페 근무자들이 주로 스마트폰으로 일정과 급여를 확인한다는 점을 고려하여, 모바일에 최적화된 UI/UX를 구현했습니다.
  • 터치 인터랙션에 특화된 바텀시트, 풀스크린 모달 등을 활용하여 사용자가 이동 중이나 현장에서도 직관적으로 서비스를 이용할 수 있도록 개발했습니다.

🔒 로그인

  • Firebase Authentication을 활용하여 이메일/비밀번호 기반의 사용자 인증 시스템을 구현했습니다.
  • 로그인 상태 관리를 위해 Redux를 활용했으며, 보안을 위한 유효성 검사도 함께 구현했습니다.

📆 메인 페이지

  • react-big-calendar 라이브러리를 커스터마이징하여 직관적인 일정 관리 시스템을 구축했습니다.
  • 근무 일정과 개인 일정의 생성, 조회, 수정, 삭제(CRUD) 기능을 구현했으며, 일정별로 다른 스타일을 적용할 수 있습니다.
  • 일정 상세 정보는 바텀시트 모달을 통해 확인할 수 있도록 구현했으며, 모바일 퍼스트의 UX를 최적화했습니다.
  • 일정 수정 및 추가는 풀스크린 모달을 통해 처리되며, 직관적인 폼 인터페이스를 제공합니다.
  • 일정 삭제 기능은 토글 버튼과 확인 단계를 통해 안전하게 처리되도록 구현했습니다.
  • react-day-picker 라이브러리를 활용하여 단일 날짜 선택(SingleDayPicker)과 기간 선택(RangeDayPicker) 기능을 구현했으며, 사용자의 일정 입력 편의성을 높였습니다.

💰 급여 페이지

  • 지난달 급여 내역과 전체 급여 목록 조회 기능을 구현했으며, 근무 정정 목록 조회, 정정 신청 기능을 구현하였습니다.
  • 지난달 급여 내역은 아코디언 UI를 적용하여 편리하게 정보를 확인 할 수 있도록 구현하였습니다.
  • 전체 급여 목록과 근무 정정 목록은 무한 스크롤을 구현하여 빠르게 목록을 조회하도록 하였습니다.
  • 근무 정정 목록에는 필터링을 추가하여 근무 유형과 승인 상태에 따라 원하는 정보를 확인 할 있도록 구현하였습니다.
  • 근무 정정 신청은 기본값을 제공하여 빠른 신청이 가능하도록 설정 했으며, 경고 메시지를 통해 필수값을 입력받도록 안내하여 안정성을 확보했습니다.

🏃 내 정보 페이지

  • Firestore database를 사용해서 저장된 사용자의 정보를 가져와 폼에 맞춰 이를 할당하도록 구현했습니다.
  • 사용자의 정보 수정은 풀스크린 모달을 통해 처리되며, 직관적인인 폼 인터페이스를 제공합니다.
  • 로그아웃 버튼을 추가해 로그인 된 사용자가 안전하게 로그아웃을 할 수 있도록 구현했습니다.

 

💁 구성원

KwonSeami yulsanoh laivastia bbjbc
☕️ 권샘이 ☕️ 오율산 ☕️ 이민태 ☕️ 조병찬

About

☕️카페 크루의 일상적인 고민을 해결하는 스마트한 근무 관리 플랫폼입니다.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •