Fit For Her(F4H)은 여성을 위한 스포츠웨어 이커머스 플랫폼입니다.
개인 프로젝트의 주제로 이커머스를 선택하고 세부 주제를 고민하던 중, 작년에 열심히 운동하던 기억이 떠올랐습니다. 그 당시 다양한 스포츠웨어 브랜드의 제품을 비교하며 구매하는 데 많은 시간을 쏟았는데, 운동하는 여성들을 위한 스포츠웨어 브랜드를 한곳에 모아두는 사이트가 있으면 좋겠다는 생각을 했었습니다. 이러한 아이디어를 바탕으로, 여성 스포츠웨어 브랜드가 한 곳에 모여있는 F4H를 구상하였습니다.
이 프로젝트는 개인 프로젝트입니다.
2024.08.20 ~ 2024.09.21 (약 5주)
구매자
ID: [email protected]
PW: xptmxm123!!!판매자
ID: [email protected]
PW: fnffnfpahs123!!!
- 레포지토리 복제 및 의존성 설치
$ git clone https://github.com/summereuna/fit-for-her.git
$ cd fit-for-her
$ yarn
- 개발 서버 가동
$ yarn dev
- 브라우저에서 실행
http://localhost:5173/
📦src
┣ 📂api
┣ 📂assets
┃ ┗ 📂images
┣ 📂components
┃ ┣ 📂...
┃ ┗ 📂ui
┣ 📂context
┣ 📂hooks
┣ 📂lib
┣ 📂pages
┣ 📂schemas
┣ 📂shared
┃ ┣ 📂...
┃ ┗ 📂data
┣ 📂types
┣ 📜App.css // 전역 CSS 스타일
┣ 📜App.tsx // 애플리케이션의 루트 컴포넌트
┣ 📜index.css // 기본 CSS 스타일
┣ 📜main.tsx // 애플리케이션 진입점
┗ 📜vite-env.d.ts // Vite 환경 타입 정의
폴더명 | 내용 |
---|---|
/api |
API 호출을 처리하는 모듈로, 각 기능별로 분리하여 관리 |
/assets |
이미지 등의 정적 리소스를 저장 |
/components |
페이지 컴포넌트보다 작은 단위의 컴포넌트 관리 |
/context |
사용자 인증, 장바구니의 전역 상태를 관리 |
/hooks |
커스텀 훅을 관리 |
/lib |
유틸리티 함수를 모음 |
/pages |
각 페이지 컴포넌트를 관리 |
/schemas |
폼 데이터 유효성 검사를 위한 Zod 스키마를 관리 |
/shared |
여러 컴포넌트에서 공통으로 사용하는 데이터, 라우팅 및 레이아웃 관련 컴포넌트 관리 |
/types |
TypeScript 타입 정의 파일을 관리 |
- 빨간색으로 표시된 브랜드 좋아요와 위시리스트 기능은 구현 중에 있습니다.

- 일반회원/비즈니스 회원 가입 기능
- 폼 유효성 검증
- 로그인 후 전역상태로 회원정보 관리
- 상단 배너 캐러셀에 브랜드별 이미지 노출(3.5초 간격으로 자동 전환)
- 카테고리별 최신 상품 조회(최대 4개)
- 더보기 버튼 및 서브 카테고리 태그 선택하여 페이지 이동
- 상단 메뉴에서 카테고리 선택해 카테고리별 상품 페이지 이동
- 상단 검색바에서 상품명/상품설명 키워드 검색 기능
- 카테고리, 검색어, 정렬 옵션에 따른 조회 결과 필터링 기능
- 무한 스크롤 활용한 페이지네이션
- 상품 이미지 캐러셀 기능으로 유저 인터랙션 강화
- 상품 선택 시 장바구니 추가 기능
- 장바구니 상품 수량 수정 및 삭제 기능
- 장바구니 상품 주문 기능
- 배송 정보 입력
- 포트원 SDK 활용한 결제 기능 (카카오페이 테스트로만 진행)
- 주문 내역 전체 조회 기능
- 주문 내역 상세 조회 기능
- 주문 취소 기능 (주문 취소의 경우
order_status: "order_cancelled"
상태 변경으로 논리적 삭제)
- 비즈니스 회원으로 가입한 판매자는 대시보드 설정 탭에서 브랜드 등록 후 대시보드 이용 가능
- 브랜드 정보 조회 및 수정 기능
- 상품 판매 수치 조회
- 판매 상품 등록, 조회, 수정, 삭제 기능 (삭제의 경우
is_active: true | false
로 논리적 삭제) - 등록 시 상품 이미지 개수 최소 1개 ~ 최대 4개 제한
- 판매 상품에 대한 배송대기, 배송중, 배송완료, 구매확정, 주문취소 상태 변경 기능
- 웹 접근성 개선: 86 -> 100 (16.28% 개선)
- 모든 button, a, Link, NavLink 요소에 aria-label로 인식 가능한 이름 표시
- 검색엔진 최적화: 83 -> 100 (20.48% 개선)
- 성능 최적화: PC: 95 -> 99 (4.21% 개선), 모바일: 59 -> 83 (40.68%% 개선)
- 결과: