Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

238 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧭 COMPASSER Frontend

μœ„μΉ˜ 기반 카페 λžœλ€λ°•μŠ€ ꡬ맀 및 QR 적립 μ„œλΉ„μŠ€

고객용 μ„œλΉ„μŠ€μ™€ 점주용 μ„œλΉ„μŠ€λ₯Ό ν•˜λ‚˜μ˜ λͺ¨λ…Έλ ˆν¬μ—μ„œ κ΄€λ¦¬ν•˜λ©°, 곡톡 UIΒ·API·개발 섀정을 νŒ¨ν‚€μ§€ν™”ν•œ Compasser ν”„λ‘ νŠΈμ—”λ“œ μ €μž₯μ†Œμž…λ‹ˆλ‹€.


Customer Service


Compasser μ„œλΉ„μŠ€ ν™”λ©΄

πŸ“Œ Project Overview

CompasserλŠ” μ‚¬μš©μžκ°€ μ£Όλ³€ 카페λ₯Ό νƒμƒ‰ν•˜κ³  λžœλ€λ°•μŠ€λ₯Ό κ΅¬λ§€ν•œ λ’€, λ§€μž₯μ—μ„œ QR을 톡해 μƒν’ˆμ„ ν™•μΈν•˜κ³  μŠ€νƒ¬ν”„λ₯Ό 적립할 수 μžˆλŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

ν”„λ‘ νŠΈμ—”λ“œλŠ” μ„œλΉ„μŠ€ 이용 주체에 따라 고객용 μ•±κ³Ό 점주용 앱을 λΆ„λ¦¬ν•˜κ³ , 두 μ•±μ—μ„œ λ°˜λ³΅λ˜λŠ” UIΒ·API·섀정은 곡톡 νŒ¨ν‚€μ§€λ‘œ κ΄€λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€.

ꡬ뢄 μ„€λͺ…
Customer 카페 탐색, λžœλ€λ°•μŠ€ ꡬ맀, 결제, QR 및 μŠ€νƒ¬ν”„ 관리
Owner λ§€μž₯κ³Ό λžœλ€λ°•μŠ€ μš΄μ˜μ„ μœ„ν•œ 점주용 μ„œλΉ„μŠ€
Design System 곡톡 UI μ»΄ν¬λ„ŒνŠΈμ™€ λ””μžμΈ κ·œμΉ™ 관리
API Package 고객용·점주용 μ•±μ—μ„œ μ‚¬μš©ν•˜λŠ” API 둜직 곡톡화

πŸ‘©β€πŸ’» Frontend Contribution

ν”„λ‘ νŠΈμ—”λ“œ 1인 κ°œλ°œμ„ λ‹΄λ‹Ήν•˜λ©° 섀계뢀터 κΈ°λŠ₯ κ΅¬ν˜„, API 연동, λ°°ν¬κΉŒμ§€ μ „ 과정을 μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

μ˜μ—­ κ΅¬ν˜„ λ‚΄μš© κ²°κ³Ό
μ•„ν‚€ν…μ²˜ 고객용·점주용 앱을 λΆ„λ¦¬ν•œ 도메인 기반 λͺ¨λ…Έλ ˆν¬ 섀계 각 μ„œλΉ„μŠ€μ˜ 역할을 λΆ„λ¦¬ν•˜λ©΄μ„œ 곡톡 μ½”λ“œλ₯Ό μž¬μ‚¬μš©ν•  수 μžˆλŠ” ꡬ쑰 확보
λ””μžμΈ μ‹œμŠ€ν…œ 곡톡 UI μ»΄ν¬λ„ŒνŠΈλ₯Ό 별도 νŒ¨ν‚€μ§€λ‘œ κ΅¬μ„±ν•˜κ³  Storybook 적용 μ„œλΉ„μŠ€ κ°„ UI 일관성 확보 및 μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„ 개발 ν™˜κ²½ ꡬ좕
곡톡 λͺ¨λ“ˆ API, Tailwind, TypeScript 섀정을 λ‚΄λΆ€ νŒ¨ν‚€μ§€λ‘œ 뢄리 μ•±λ§ˆλ‹€ 반볡되던 μ„€μ •κ³Ό API κ΅¬ν˜„ λ²”μœ„ μΆ•μ†Œ
핡심 κΈ°λŠ₯ λžœλ€λ°•μŠ€ νƒμƒ‰Β·κ΅¬λ§€Β·κ²°μ œ, QR 확인, μŠ€νƒ¬ν”„ 적립 κΈ°λŠ₯ κ΅¬ν˜„ 탐색뢀터 μ˜€ν”„λΌμΈ μ‚¬μš©κΉŒμ§€ μ΄μ–΄μ§€λŠ” μ‚¬μš©μž 흐름 μ™„μ„±
ν˜‘μ—… λ°±μ—”λ“œ 개발자 3λͺ…, λ””μžμ΄λ„ˆ 1λͺ…κ³Ό API 및 UI λͺ…μ„Έ 쑰율 ν”„λ‘ νŠΈμ—”λ“œ μΈν„°νŽ˜μ΄μŠ€μ™€ 데이터 흐름을 μΌκ΄€λœ ꡬ쑰둜 μ—°κ²°

✨ Architecture Impact

  • 고객용 μ•±κ³Ό 점주용 μ•±μ˜ 역할을 λΆ„λ¦¬ν•˜λ©΄μ„œ 곡톡 νŒ¨ν‚€μ§€λ₯Ό μž¬μ‚¬μš©ν•˜λ„λ‘ ꡬ성
  • UIΒ·APIΒ·μ„€μ • νŒ¨ν‚€μ§€ 톡합을 톡해 앱별 반볡 κ΅¬ν˜„ λ²”μœ„λ₯Ό μ•½ 50% μΆ•μ†Œ
  • μƒˆλ‘œμš΄ μ•±μ΄λ‚˜ κΈ°λŠ₯이 μΆ”κ°€λ˜μ–΄λ„ 곡톡 νŒ¨ν‚€μ§€λ₯Ό ν™•μž₯ν•  수 μžˆλŠ” ꡬ쑰 마련
  • 곡톡 μ»΄ν¬λ„ŒνŠΈλ₯Ό Storybookμ—μ„œ λ…λ¦½μ μœΌλ‘œ ν™•μΈν•˜κ³  관리할 수 μžˆλ„λ‘ ꡬ성

πŸ—οΈ Monorepo Architecture

πŸ“š Architecture References

Turborepo pnpm Workspace Storybook

flowchart TB
    ROOT["🧭 Compasser FE Monorepo"]

    ROOT --> APPS["Applications"]
    ROOT --> PACKAGES["Shared Packages"]

    APPS --> CUSTOMER["apps/customer<br/>고객용 μ„œλΉ„μŠ€"]
    APPS --> OWNER["apps/owner<br/>점주용 μ„œλΉ„μŠ€"]

    PACKAGES --> API["packages/api<br/>곡톡 API"]
    PACKAGES --> DS["packages/design-system<br/>곡톡 UI"]
    PACKAGES --> TW["packages/tailwind-config<br/>λ””μžμΈ 토큰"]
    PACKAGES --> TS["packages/typescript-config<br/>곡톡 TS μ„€μ •"]

    CUSTOMER --> API
    CUSTOMER --> DS
    OWNER --> API
    OWNER --> DS
Loading

Directory Structure

FE
β”œβ”€β”€ apps
β”‚   β”œβ”€β”€ customer
β”‚   β”‚   └── 고객용 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜
β”‚   └── owner
β”‚       └── 점주용 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜
β”‚
β”œβ”€β”€ packages
β”‚   β”œβ”€β”€ api
β”‚   β”‚   └── 곡톡 API μš”μ²­ 및 응닡 둜직
β”‚   β”œβ”€β”€ design-system
β”‚   β”‚   └── 곡톡 UI μ»΄ν¬λ„ŒνŠΈ 및 Storybook
β”‚   β”œβ”€β”€ tailwind-config
β”‚   β”‚   └── 곡톡 μŠ€νƒ€μΌκ³Ό λ””μžμΈ 토큰
β”‚   └── typescript-config
β”‚       └── 곡톡 TypeScript μ„€μ •
β”‚
β”œβ”€β”€ pnpm-workspace.yaml
β”œβ”€β”€ turbo.json
└── package.json

ꡬ쑰 섀계 κΈ°μ€€

appsμ—λŠ” 고객용·점주용 μ„œλΉ„μŠ€μ²˜λŸΌ 각각 λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰λ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.

packagesμ—λŠ” 두 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” UI, API, μŠ€νƒ€μΌ, TypeScript 섀정을 λ°°μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό 톡해 각 앱은 μžμ‹ μ˜ 도메인 κΈ°λŠ₯에 μ§‘μ€‘ν•˜κ³ , 곡톡 λ³€κ²½ 사항은 νŒ¨ν‚€μ§€ ν•œ κ³³μ—μ„œ 관리할 수 μžˆλ„λ‘ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.


🎨 Design System

Compasser Design System

μ„œλΉ„μŠ€ μ „λ°˜μ—μ„œ μž¬μ‚¬μš©ν•  수 μžˆλŠ” 곡톡 UI νŒ¨ν‚€μ§€

곡톡 μ»΄ν¬λ„ŒνŠΈλ₯Ό packages/design-system으둜 λΆ„λ¦¬ν•˜κ³  Storybook을 μ μš©ν–ˆμŠ΅λ‹ˆλ‹€.

  • Button, Input, Modal λ“± 곡톡 UI μ»΄ν¬λ„ŒνŠΈ νŒ¨ν‚€μ§€ν™”
  • 고객용·점주용 μ•±μ—μ„œ λ™μΌν•œ μ»΄ν¬λ„ŒνŠΈ μž¬μ‚¬μš©
  • μ»΄ν¬λ„ŒνŠΈ μƒνƒœμ™€ μ‚¬μš© 방법을 Storybookμ—μ„œ λ…λ¦½μ μœΌλ‘œ 확인
  • 곡톡 λ””μžμΈ 토큰을 톡해 μƒ‰μƒΒ·νƒ€μ΄ν¬κ·Έλž˜ν”ΌΒ·κ°„κ²© 일관성 μœ μ§€
  • UI μˆ˜μ • 사항을 ν•œ νŒ¨ν‚€μ§€μ—μ„œ κ΄€λ¦¬ν•˜μ—¬ 앱별 쀑볡 μˆ˜μ • λ°©μ§€

🎯 Key Features

1. μœ„μΉ˜ 기반 카페 탐색

μ‚¬μš©μžμ˜ ν˜„μž¬ μœ„μΉ˜λ₯Ό 기반으둜 μ£Όλ³€ μΉ΄νŽ˜μ™€ 이용 κ°€λŠ₯ν•œ λžœλ€λ°•μŠ€λ₯Ό 탐색할 수 μžˆμŠ΅λ‹ˆλ‹€.

2. μΉ΄νŽ˜λ³„ λžœλ€λ°•μŠ€ ꡬ맀

μΉ΄νŽ˜μ—μ„œ νŒλ§€ν•˜λŠ” λžœλ€λ°•μŠ€μ˜ 정보와 가격을 ν™•μΈν•˜κ³  ꡬ맀할 수 μžˆμŠ΅λ‹ˆλ‹€.

3. 결제 및 μ£Όλ¬Έ 흐름

μƒν’ˆ 선택뢀터 μ£Όλ¬Έ 확인과 κ²°μ œκΉŒμ§€ μ΄μ–΄μ§€λŠ” μ‚¬μš©μž 흐름을 κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€.

4. QR 기반 μƒν’ˆ 확인

κ΅¬λ§€ν•œ λžœλ€λ°•μŠ€λ₯Ό λ§€μž₯μ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ QR 기반 확인 흐름을 μ œκ³΅ν•©λ‹ˆλ‹€.

5. μŠ€νƒ¬ν”„ 적립 및 관리

카페 이용 내역에 따라 μŠ€νƒ¬ν”„λ₯Ό μ λ¦½ν•˜κ³  보유 ν˜„ν™©μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

6. 고객·점주 μ„œλΉ„μŠ€ 뢄리

고객과 점주의 μ‚¬μš© λͺ©μ μ— 맞게 앱을 λΆ„λ¦¬ν•˜λ©΄μ„œλ„ 곡톡 μ½”λ“œμ™€ λ””μžμΈ μ‹œμŠ€ν…œμ€ ν•¨κ»˜ μ‚¬μš©ν•©λ‹ˆλ‹€.


πŸ› οΈ Tech Stack

Next.js React TypeScript Tailwind CSS React Query Zustand Turborepo Storybook pnpm Vercel

λΆ„λ₯˜ 기술
Framework Next.js, React
Language TypeScript
Styling Tailwind CSS
Server State TanStack React Query
Client State Zustand
Monorepo Turborepo, pnpm Workspace
UI Development Storybook
Deployment Vercel

πŸš€ Getting Started

1. Repository clone

git clone https://github.com/CUK-Compasser/FE.git
cd FE

2. Install dependencies

pnpm install

3. Run development environment

pnpm dev

4. Build

pnpm build

5. Type check

pnpm type-check

COMPASSER

μ‚¬μš©μžμ™€ 카페λ₯Ό λžœλ€λ°•μŠ€λ‘œ μ—°κ²°ν•©λ‹ˆλ‹€.

Releases

Packages

Contributors

Languages