Skip to content

whd793/Shopping-ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

51 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Clothing Ecommerce Website πŸ‘‘

ν™ˆ ν™”λ©΄ μƒν’ˆ λͺ©λ‘ μƒν’ˆ 상세 μž₯λ°”κ΅¬λ‹ˆ


English

A modern, full-featured e-commerce platform built with React and Firebase, showcasing best practices in front-end development and state management.

🌟 Features

  • User Authentication

    • Email/Password sign-up and login
    • Google OAuth integration
    • Persistent user sessions
    • Secure authentication flow using Firebase Auth
  • Shopping Experience

    • Browse products by categories
    • Dynamic product filtering
    • Shopping cart functionality
    • Seamless checkout process
    • Real-time cart updates
    • Wishlist functionality
    • Size guide for clothing
    • Product reviews and ratings
    • Responsive product grid layout
  • Product Management

    • Dynamic category filtering
    • Featured products showcase
    • Detailed product pages
    • Product image optimization
    • Recently viewed products tracking
  • State Management

    • Redux Toolkit implementation
    • Optimized performance with Redux selectors
    • Persistent cart state
    • Centralized store management
  • Styling & UI

    • Styled-components for component-level styling
    • Responsive design
    • Custom button components
    • Dynamic navigation
    • Cart dropdown preview

Key Features Breakdown

Home Page

  • Hero banner with featured collections
  • Category showcase
  • Featured products section
  • Newsletter subscription
  • Benefits highlights section

Product Features

  • Detailed product views
  • Size guide integration
  • Customer reviews and ratings
  • Add to wishlist functionality
  • Recently viewed products tracking

Shopping Cart

  • Real-time cart updates
  • Quantity adjustment
  • Persistent cart state
  • Cart summary
  • Quick checkout process

πŸ› οΈ Technical Stack

  • Frontend Framework: React.js
  • Routing: React Router v6
  • State Management: Redux Toolkit
  • Authentication: Firebase Auth
  • Database: Firebase Firestore
  • Styling: Styled Components
  • Type Checking: JavaScript
  • Build Tool: Create React App

πŸ—οΈ Architecture

The project follows a modern React application architecture with:

  • Component-based structure
  • Container/Presentational pattern
  • Redux slice pattern for state management
  • Firebase integration for backend services
  • Reusable styled components
  • React Hooks for state and lifecycle management

πŸ“‚ Project Structure

src/
β”œβ”€β”€ components/         # Reusable UI components
β”œβ”€β”€ routes/            # Route components and layouts
β”œβ”€β”€ store/             # Redux store configuration and slices
β”œβ”€β”€ utils/             # Helper functions and Firebase config
β”œβ”€β”€ assets/            # Static assets and images
└── styles/            # Global styles and theme

πŸš€ Key Components

  • Navigation: Responsive header with cart preview
  • Directory: Dynamic category navigation
  • Shop: Product listing with category filtering
  • Cart: Real-time cart management with dropdown
  • Checkout: Order summary and payment flow
  • Authentication: User sign-in and registration forms

πŸ’‘ State Management Highlights

  • Redux Toolkit Integration

    • Simplified Redux setup with createSlice
    • Efficient state updates with ImmerJS
    • Type-safe action creators
    • Memoized selectors for performance
  • Firebase Integration

    • Real-time database listeners
    • Batch write operations
    • Secure user authentication
    • Document/Collection management

πŸ”§ Setup and Installation

  1. Clone the repository
git clone https://github.com/your-username/crown-clothing.git
  1. Install dependencies
cd crown-clothing
npm install
  1. Set up Firebase

    • Create a Firebase project
    • Enable Authentication (Email/Password and Google)
    • Set up Firestore database
    • Add Firebase config to environment variables
  2. Start the development server

npm start

🌐 Environment Variables

Create a .env file in the root directory:

REACT_APP_FIREBASE_API_KEY=your_api_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain
REACT_APP_FIREBASE_PROJECT_ID=your_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
REACT_APP_FIREBASE_APP_ID=your_app_id

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE.md file for details.

πŸ™ Acknowledgments

  • Create React App documentation
  • Redux Toolkit documentation
  • Firebase documentation
  • Styled Components documentation
  • React Router documentation

ν•œκ΅­μ–΄

이컀머슀 ν”Œλž«νΌ 개발 ν”„λ‘œμ νŠΈλ₯Ό 톡해 μ œκ°€ κ°€μ§„ 기술λ ₯κ³Ό 문제 ν•΄κ²° λŠ₯λ ₯을 증λͺ…ν•˜κ³ μž ν–ˆμŠ΅λ‹ˆλ‹€. React와 Firebaseλ₯Ό 기반으둜 ν•œ 이 ν”„λ‘œμ νŠΈλŠ” λ‹¨μˆœν•œ 기술 κ΅¬ν˜„μ„ λ„˜μ–΄, μ‹€μ œ μ‚¬μš©μž κ²½ν—˜μ„ κ³ λ €ν•œ μ„œλΉ„μŠ€λ₯Ό λ§Œλ“œλŠ” 것을 λͺ©ν‘œλ‘œ ν–ˆμŠ΅λ‹ˆλ‹€. 특히 μƒνƒœ 관리, μ„±λŠ₯ μ΅œμ ν™”, λ°˜μ‘ν˜• λ””μžμΈ κ΅¬ν˜„ κ³Όμ •μ—μ„œ ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμžλ‘œμ„œμ˜ μ—­λŸ‰μ„ 크게 ν–₯μƒμ‹œν‚¬ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

이컀머슀 ν”Œλž«νΌμœΌλ‘œ, μ‹€μ‹œκ°„ μƒν’ˆ μ—…λ°μ΄νŠΈ, μ‚¬μš©μž 인증, μž₯λ°”κ΅¬λ‹ˆ 관리, μœ„μ‹œλ¦¬μŠ€νŠΈ κΈ°λŠ₯, μƒν’ˆ 리뷰 λ“± 쒅합적인 μ‡Όν•‘ κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

🌟 μ£Όμš” κΈ°λŠ₯

  • μ‚¬μš©μž 인증

    • 이메일/λΉ„λ°€λ²ˆν˜Έ νšŒμ›κ°€μž… 및 둜그인
    • ꡬ글 μ†Œμ…œ 둜그인 톡합
    • μ„Έμ…˜ μœ μ§€ κΈ°λŠ₯
    • νŒŒμ΄μ–΄λ² μ΄μŠ€ 인증을 ν†΅ν•œ λ³΄μ•ˆ κ°•ν™”
  • μ‡Όν•‘ κ²½ν—˜

    • μΉ΄ν…Œκ³ λ¦¬λ³„ μƒν’ˆ λΈŒλΌμš°μ§•
    • 동적 μƒν’ˆ 필터링
    • μž₯λ°”κ΅¬λ‹ˆ κΈ°λŠ₯
    • μ›ν™œν•œ 결제 ν”„λ‘œμ„ΈμŠ€
    • μ‹€μ‹œκ°„ μž₯λ°”κ΅¬λ‹ˆ μ—…λ°μ΄νŠΈ
  • μƒν’ˆ 관리

    • 동적 μΉ΄ν…Œκ³ λ¦¬ 필터링
    • μΆ”μ²œ μƒν’ˆ μ„Ήμ…˜
    • 상세 μƒν’ˆ νŽ˜μ΄μ§€
    • μƒν’ˆ 이미지 μ΅œμ ν™”
    • 졜근 λ³Έ μƒν’ˆ 좔적
  • μ‡Όν•‘ κ²½ν—˜

    • μ‹€μ‹œκ°„ μž₯λ°”κ΅¬λ‹ˆ
    • μœ„μ‹œλ¦¬μŠ€νŠΈ κΈ°λŠ₯
    • 의λ₯˜ μ‚¬μ΄μ¦ˆ κ°€μ΄λ“œ
    • μƒν’ˆ 리뷰 및 평점
    • λ°˜μ‘ν˜• μƒν’ˆ κ·Έλ¦¬λ“œ λ ˆμ΄μ•„μ›ƒ
  • ν™ˆνŽ˜μ΄μ§€

    • μΆ”μ²œ μ»¬λ ‰μ…˜ νžˆμ–΄λ‘œ λ°°λ„ˆ
    • μΉ΄ν…Œκ³ λ¦¬ μ‡ΌμΌ€μ΄μŠ€
    • μΆ”μ²œ μƒν’ˆ μ„Ήμ…˜
    • λ‰΄μŠ€λ ˆν„° ꡬ독
    • ν˜œνƒ ν•˜μ΄λΌμ΄νŠΈ μ„Ήμ…˜
  • μž₯λ°”κ΅¬λ‹ˆ

    • μ‹€μ‹œκ°„ μž₯λ°”κ΅¬λ‹ˆ μ—…λ°μ΄νŠΈ
    • μˆ˜λŸ‰ 쑰절
    • μž₯λ°”κ΅¬λ‹ˆ μƒνƒœ μœ μ§€
    • μž₯λ°”κ΅¬λ‹ˆ μš”μ•½
    • λΉ λ₯Έ 체크아웃 ν”„λ‘œμ„ΈμŠ€
  • μƒνƒœ 관리

    • Redux Toolkit κ΅¬ν˜„
    • Redux μ…€λ ‰ν„°λ₯Ό ν†΅ν•œ μ„±λŠ₯ μ΅œμ ν™”
    • μž₯λ°”κ΅¬λ‹ˆ μƒνƒœ μœ μ§€
    • 쀑앙 집쀑식 μŠ€ν† μ–΄ 관리
  • μŠ€νƒ€μΌλ§ 및 UI

    • Styled-componentsλ₯Ό ν™œμš©ν•œ μ»΄ν¬λ„ŒνŠΈ 레벨 μŠ€νƒ€μΌλ§
    • λ°˜μ‘ν˜• λ””μžμΈ
    • μ»€μŠ€ν…€ λ²„νŠΌ μ»΄ν¬λ„ŒνŠΈ
    • 동적 λ„€λΉ„κ²Œμ΄μ…˜
    • μž₯λ°”κ΅¬λ‹ˆ λ“œλ‘­λ‹€μš΄ 프리뷰

πŸ› οΈ 기술 μŠ€νƒ

  • ν”„λ‘ νŠΈμ—”λ“œ ν”„λ ˆμž„μ›Œν¬: React.js
  • λΌμš°νŒ…: React Router v6
  • μƒνƒœ 관리: Redux Toolkit
  • 인증: Firebase Auth
  • λ°μ΄ν„°λ² μ΄μŠ€: Firebase Firestore
  • μŠ€νƒ€μΌλ§: Styled Components
  • νƒ€μž… 체크: JavaScript
  • λΉŒλ“œ 도ꡬ: Create React App

πŸ—οΈ μ•„ν‚€ν…μ²˜

ν˜„λŒ€μ μΈ React μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„ν‚€ν…μ²˜λ₯Ό λ”°λ¦…λ‹ˆλ‹€:

  • μ»΄ν¬λ„ŒνŠΈ 기반 ꡬ쑰
  • μ»¨ν…Œμ΄λ„ˆ/ν”„λ ˆμ  ν…Œμ΄μ…˜ νŒ¨ν„΄
  • Redux 슬라이슀 νŒ¨ν„΄μ„ ν†΅ν•œ μƒνƒœ 관리
  • νŒŒμ΄μ–΄λ² μ΄μŠ€ λ°±μ—”λ“œ μ„œλΉ„μŠ€ 톡합
  • μž¬μ‚¬μš© κ°€λŠ₯ν•œ μŠ€νƒ€μΌ μ»΄ν¬λ„ŒνŠΈ
  • React Hooksλ₯Ό ν†΅ν•œ μƒνƒœ 및 생λͺ…μ£ΌκΈ° 관리

πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰

src/
β”œβ”€β”€ components/         # μž¬μ‚¬μš© κ°€λŠ₯ν•œ UI μ»΄ν¬λ„ŒνŠΈ
β”œβ”€β”€ routes/            # 라우트 μ»΄ν¬λ„ŒνŠΈ 및 λ ˆμ΄μ•„μ›ƒ
β”œβ”€β”€ store/             # Redux μŠ€ν† μ–΄ μ„€μ • 및 슬라이슀
β”œβ”€β”€ utils/             # 헬퍼 ν•¨μˆ˜ 및 Firebase μ„€μ •
β”œβ”€β”€ assets/            # 정적 에셋 및 이미지
└── styles/            # μ „μ—­ μŠ€νƒ€μΌ 및 ν…Œλ§ˆ

πŸš€ 핡심 μ»΄ν¬λ„ŒνŠΈ

  • λ„€λΉ„κ²Œμ΄μ…˜: μž₯λ°”κ΅¬λ‹ˆ 프리뷰가 ν¬ν•¨λœ λ°˜μ‘ν˜• 헀더
  • 디렉토리: 동적 μΉ΄ν…Œκ³ λ¦¬ λ„€λΉ„κ²Œμ΄μ…˜
  • 샡: μΉ΄ν…Œκ³ λ¦¬ 필터링이 μžˆλŠ” μƒν’ˆ λͺ©λ‘
  • μž₯λ°”κ΅¬λ‹ˆ: λ“œλ‘­λ‹€μš΄μ΄ μžˆλŠ” μ‹€μ‹œκ°„ μž₯λ°”κ΅¬λ‹ˆ 관리
  • 결제: μ£Όλ¬Έ μš”μ•½ 및 결제 흐름
  • 인증: μ‚¬μš©μž 둜그인 및 νšŒμ›κ°€μž… 폼

πŸ’‘ μƒνƒœ 관리 νŠΉμ§•

  • Redux Toolkit 톡합

    • createSliceλ₯Ό ν†΅ν•œ κ°„μ†Œν™”λœ Redux μ„€μ •
    • ImmerJSλ₯Ό ν†΅ν•œ 효율적인 μƒνƒœ μ—…λ°μ΄νŠΈ
    • νƒ€μž… 세이프 μ•‘μ…˜ μƒμ„±μž
    • μ„±λŠ₯을 μœ„ν•œ λ©”λͺ¨μ΄μ œμ΄μ…˜λœ μ…€λ ‰ν„°
  • Firebase 톡합

    • μ‹€μ‹œκ°„ λ°μ΄ν„°λ² μ΄μŠ€ λ¦¬μŠ€λ„ˆ
    • 일괄 μ“°κΈ° μž‘μ—…
    • μ•ˆμ „ν•œ μ‚¬μš©μž 인증
    • λ¬Έμ„œ/μ»¬λ ‰μ…˜ 관리

πŸ”§ μ„€μΉ˜ 및 μ„€μ •

  1. μ €μž₯μ†Œ 클둠
git clone https://github.com/your-username/crown-clothing.git
  1. μ˜μ‘΄μ„± μ„€μΉ˜
cd crown-clothing
npm install
  1. Firebase μ„€μ •

    • Firebase ν”„λ‘œμ νŠΈ 생성
    • 인증 ν™œμ„±ν™” (이메일/λΉ„λ°€λ²ˆν˜Έ 및 ꡬ글)
    • Firestore λ°μ΄ν„°λ² μ΄μŠ€ μ„€μ •
    • ν™˜κ²½ λ³€μˆ˜μ— Firebase μ„€μ • μΆ”κ°€
  2. 개발 μ„œλ²„ μ‹œμž‘

npm start

🌐 ν™˜κ²½ λ³€μˆ˜

루트 디렉토리에 .env 파일 생성:

REACT_APP_FIREBASE_API_KEY=your_api_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain
REACT_APP_FIREBASE_PROJECT_ID=your_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
REACT_APP_FIREBASE_APP_ID=your_app_id

🀝 κΈ°μ—¬ν•˜κΈ°

  1. μ €μž₯μ†Œ ν¬ν¬ν•˜κΈ°
  2. κΈ°λŠ₯ 브랜치 생성 (git checkout -b feature/λ©‹μ§„κΈ°λŠ₯)
  3. 변경사항 컀밋 (git commit -m 'λ©‹μ§„ κΈ°λŠ₯ μΆ”κ°€')
  4. λΈŒλžœμΉ˜μ— ν‘Έμ‹œ (git push origin feature/λ©‹μ§„κΈ°λŠ₯)
  5. Pull Request μ—΄κΈ°

πŸ“ λΌμ΄μ„ μŠ€

이 ν”„λ‘œμ νŠΈλŠ” MIT λΌμ΄μ„ μŠ€λ₯Ό λ”°λ¦…λ‹ˆλ‹€ - μžμ„Έν•œ λ‚΄μš©μ€ LICENSE.md νŒŒμΌμ„ μ°Έμ‘°ν•˜μ„Έμš”.

πŸ™ κ°μ‚¬μ˜ 말

  • Create React App λ¬Έμ„œ
  • Redux Toolkit λ¬Έμ„œ
  • Firebase λ¬Έμ„œ
  • Styled Components λ¬Έμ„œ
  • React Router λ¬Έμ„œ

About

A modern, full-featured e-commerce platform built with React and Firebase, showcasing best practices in front-end development and state management.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages