/class101-front-end-assignment

πŸ›’ Shopping cart system to purchase classes of CLASS101

Primary LanguageTypeScriptMIT LicenseMIT

πŸ›’ CLASS101 Front-End Assignment

Shopping cart system to purchase classes of CLASS101.

Development Environment

  • Node.js 15.2.1
  • npm 6.14.8
  • Ubuntu 20.04 (WSL)
  • Visual Studio Code

Tech Stack

Available Scripts

  • npm start: Run the app in development mode. Open http://localhost:8080 to view it in the browser.
  • npm run lint: Find the problem in JavaScript code.
  • npm run build: Build the app for production to the build folder.

Assignment Details

Conditions

  • Develop with React or React Native
  • Version control using Git
  • You can run the project in local environment

Feature Requirements

  • μƒν’ˆ λͺ©λ‘ νŽ˜μ΄μ§€
    • Route is /products
    • 각 μƒν’ˆμ€ 가격, 사진, μƒν’ˆ 제λͺ©μ„ ν‘œμ‹œ
    • μƒν’ˆμ˜ scoreλ₯Ό κΈ°μ€€μœΌλ‘œ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜μ—¬ 5κ°œμ”© λ³΄μ—¬μ£ΌλŠ” pagination κ΅¬ν˜„
    • 각 μƒν’ˆμ—λŠ” μž₯λ°”κ΅¬λ‹ˆ λ²„νŠΌμ΄ 있음
      • μƒν’ˆμ΄ μž₯λ°”κ΅¬λ‹ˆμ— 담겨 μžˆμ§€ μ•Šμ€ 경우 λ‹΄κΈ° λ²„νŠΌ κ΅¬ν˜„
      • μƒν’ˆμ΄ μž₯λ°”κ΅¬λ‹ˆμ— 담겨 μžˆλŠ” 경우 λΉΌκΈ° λ²„νŠΌ κ΅¬ν˜„
  • μž₯λ°”κ΅¬λ‹ˆ νŽ˜μ΄μ§€
    • Route is /cart
    • μž₯λ°”κ΅¬λ‹ˆμ—λŠ” μ΅œλŒ€ 3개의 μƒν’ˆμ΄ λ‹΄κΈΈ 수 있음
    • μž₯λ°”κ΅¬λ‹ˆμ˜ μƒν’ˆ 쀑 κ²°μ œμ— 포함할 μƒν’ˆμ„ checkbox λ“±μ˜ UI둜 선택할 수 있음
    • μž₯λ°”κ΅¬λ‹ˆμ— λ‹΄κΈ΄ 각 μƒν’ˆμ˜ μˆ˜λŸ‰μ„ 선택할 수 있음
      • 단, μ΅œμ†Œ 1개의 μˆ˜λŸ‰μ΄ μ§€μ •λ˜μ–΄μ•Ό 함
    • μž₯λ°”κ΅¬λ‹ˆμ— λ‹΄κΈ΄ 전체 μƒν’ˆμ˜ μ΅œμ’… 결제 κΈˆμ•‘μ— λŒ€ν•˜μ—¬ 쿠폰을 μ μš©ν•  수 있음
      • 쿠폰 적용이 λΆˆκ°€λŠ₯ν•œ μƒν’ˆμ€ 쿠폰 할인 κ³„μ‚°μ—μ„œ μ œμ™Έ
    • μ΅œμ’… 결제 κΈˆμ•‘μ„ μž₯λ°”κ΅¬λ‹ˆ νŽ˜μ΄μ§€ ν•˜λ‹¨μ— ν‘œμ‹œ
      • μ†Œμˆ˜μ  가격이 생긴닀면 버림 처리
  • 데이터
    • μ„œλ²„μ—μ„œ 주어진닀고 κ°€μ •ν•˜κΈ° λ•Œλ¬Έμ— 데이터λ₯Ό 직접 λ³€κ²½ν•˜λŠ” 것은 κΈˆμ§€

Additional Features

  • μƒν’ˆ λͺ©λ‘ νŽ˜μ΄μ§€
    • μƒν’ˆ λͺ©λ‘μ„ λ„˜κΈΈ λ•Œ μ›€μ§μ΄λŠ” μ• λ‹ˆλ©”μ΄μ…˜ 효과 μΆ”κ°€
  • μž₯λ°”κ΅¬λ‹ˆ νŽ˜μ΄μ§€
    • μ œν’ˆμ„ μ‚­μ œν•  수 μžˆλŠ” κΈ°λŠ₯ μΆ”κ°€
    • μ΅œμ’… 결제 κΈˆμ•‘μ— 할인 κΈˆμ•‘λ„ 같이 ν‘œμ‹œ
  • κ·Έ μ™Έ UI / UX
    • λͺ¨λ°”일을 κ³ λ €ν•œ λ°˜μ‘ν˜• νŽ˜μ΄μ§€
    • alert ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” λŒ€μ‹  μ»€μŠ€ν…€ alert component 등을 μ‚¬μš©
  • ν”„λ‘œκ·Έλž˜λ° κ΄€λ ¨
    • redux-thunk λ˜λŠ” redux-saga 등을 ν™œμš©ν•œ API 비동기 처리
    • Code splitting 적용
    • Server-side rendering 적용