Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 HARUMAN (ν•˜λ£¨λ§Œ) β€” λ§žμΆ€ν˜• λŒ€μ—¬ μ€‘κ°œ 및 AI μΆ”μ²œ ν”Œλž«νΌ

"μƒˆλ‘œμš΄ λ°”μ΄λŸ΄, ν•œλ²ˆλ§Œ ν•΄λ³΄μž" β€” κ²½ν¬λŒ€ν•™κ΅ 2026 ACC ν”„λ‘œμ νŠΈ Team 6

판맀자(λŒ€μ—¬μž)와 ꡬ맀자(λŒ€μ—¬λ°›λŠ” 자)λ₯Ό μ—°κ²°ν•˜λŠ” P2P/B2C λŒ€μ—¬ μ€‘κ°œ λ§€μΉ­ ν”Œλž«νΌμž…λ‹ˆλ‹€.

"μ›ν•˜λŠ” κ²ƒλ§Œ 체크, ν•„μš”ν•œ κ²ƒλ§Œ λͺ¨μ•„보기" AI 챗봇이 μ‚¬μš©μžμ˜ 상황을 뢄석해 ν•„μš”ν•œ λ¬Όν’ˆμ„ μžλ™ μΆ”μ²œν•˜κ³ , μ—μŠ€ν¬λ‘œ 보증금 μ‹œμŠ€ν…œμœΌλ‘œ μ•ˆμ „ν•œ 거래λ₯Ό 보μž₯ν•©λ‹ˆλ‹€.

"λΌμ›ŒνŒ”κΈ°λŠ” 그만, λ¬΄μ˜λ―Έν•œ λ°©μΉ˜λ„ 그만! μŸμ•„μ§€λŠ” λ°”μ΄λŸ΄ 속 μ›ν•˜λŠ” κ²½ν—˜μ„ ν•œλ²ˆλ§Œ μ²΄ν—˜ν•΄λ³΄κ³  μ‹Άλ‹€λ©΄ HARUMAN 빌렀보자"

🌐 도메인: haruman.shop


πŸ“‹ λͺ©μ°¨


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

πŸ€– AI 기반 λ¬Όν’ˆ μΆ”μ²œ 챗봇

  • AWS Bedrock Nova Lite λͺ¨λΈ 연동
  • μ‚¬μš©μž λŒ€ν™” λ§₯락 뢄석 β†’ ν•„μš” λ¬Όν’ˆ μžλ™ μΆ”λ‘ 
  • 챗봇 결과와 μ²΄ν¬λ°•μŠ€ UI μ‹€μ‹œκ°„ 동기화

πŸ’¬ μ‹€μ‹œκ°„ 1:1 μ±„νŒ…

  • WebSocket 기반 판맀자-ꡬ맀자 직거래 상담
  • Clean_Bot: AI 비속어/μš•μ„€ μ‹€μ‹œκ°„ 필터링 (Bedrock Nova Lite, 5초 νƒ€μž„μ•„μ›ƒ)

πŸ” 인증 및 λ³΄μ•ˆ

  • Supabase Auth + 이메일 인증 (Resend API)
  • JWT 기반 μ„Έμ…˜ 관리
  • RBAC (Guest / User / Admin)

πŸ“¦ λŒ€μ—¬ 관리 및 μ—μŠ€ν¬λ‘œ

  • λŒ€μ—¬ 생λͺ…μ£ΌκΈ°: μ˜ˆμ•½ν™•μ •μ‹œ β†’ λŒ€μ—¬μ€‘ β†’ λ°˜λ‚©μ™„λ£Œ
  • μ—μŠ€ν¬λ‘œ 보증금 μ‹œμŠ€ν…œ (연체 μ‹œ 일별 20% 차감, 5일 이상 μ „μ•‘ λͺ°μˆ˜)

πŸ”” μ‹€μ‹œκ°„ μ•Œλ¦Ό

  • WebSocket 기반 ν‘Έμ‹œ μ•Œλ¦Ό
  • FCM 토큰 지원
  • λ°˜λ‚© κΈ°ν•œ μž„λ°• μžλ™ μ•Œλ¦Ό

πŸ›‘οΈ 사기 λ°©μ§€

  • 결제 μΉ΄λ“œ 사전 λ“±λ‘μ œ (거래 μ „ μΉ΄λ“œ 인증 ν•„μˆ˜)
  • μ–‘μž 결제 확인 (buyer_confirmed + seller_confirmed)

πŸ›  기술 μŠ€νƒ

μ˜μ—­ 기술
Frontend React 18, TypeScript, Vite, TailwindCSS 4, shadcn/ui, MUI Icons
Backend Express.js (Node.js), TypeScript, JWT, bcrypt
Database Supabase PostgreSQL (Serverless)
AI/ML AWS Bedrock (Amazon Nova Lite v1)
Auth Supabase Auth, Resend (이메일 인증)
μ‹€μ‹œκ°„ WebSocket (ws 라이브러리), API Gateway WebSocket
Storage AWS S3 (이미지 μ—…λ‘œλ“œ)
배포 AWS Lambda, API Gateway, S3 + CloudFront
ν…ŒμŠ€νŠΈ Jest, fast-check (Property-Based Testing)
μ½”λ“œ ν’ˆμ§ˆ ESLint, Prettier

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

haruman/
β”œβ”€β”€ backend/                    # Express λ°±μ—”λ“œ μ„œλ²„
β”‚   β”œβ”€β”€ main.js                 # μ§„μž…μ  (Express μ•± + λΌμš°νŒ…)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ ai/                 # AI 챗봇 ν•Έλ“€λŸ¬ (Bedrock Nova Lite)
β”‚   β”‚   β”œβ”€β”€ auth/               # 인증 (νšŒμ›κ°€μž…, 둜그인, 이메일 인증, JWT)
β”‚   β”‚   β”œβ”€β”€ chat/               # μ±„νŒ… (λ©”μ‹œμ§€ 전솑, CleanBot ν•„ν„°)
β”‚   β”‚   β”œβ”€β”€ common/             # 곡톡 μœ ν‹Έ (config, errors, response)
β”‚   β”‚   β”œβ”€β”€ db/                 # Supabase ν΄λΌμ΄μ–ΈνŠΈ
β”‚   β”‚   β”œβ”€β”€ mocks/              # ν…ŒμŠ€νŠΈμš© Mock (Bedrock, SES)
β”‚   β”‚   β”œβ”€β”€ notify/             # ν‘Έμ‹œ μ•Œλ¦Ό (FCM)
β”‚   β”‚   └── websocket/          # WebSocket μ—°κ²°/ν•΄μ œ ν•Έλ“€λŸ¬
β”‚   β”œβ”€β”€ package.json
β”‚   └── tsconfig.json
β”‚
β”œβ”€β”€ frontend/                   # React SPA (Vite)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/                # API ν΄λΌμ΄μ–ΈνŠΈ (auth, items, rentals, users, ai)
β”‚   β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”‚   β”œβ”€β”€ components/     # UI μ»΄ν¬λ„ŒνŠΈ (Figma 기반)
β”‚   β”‚   β”‚   └── pages/          # νŽ˜μ΄μ§€ (Home, Chat, Rental, MyPage λ“±)
β”‚   β”‚   β”œβ”€β”€ context/            # Context (Auth, WebSocket, Notification)
β”‚   β”‚   β”œβ”€β”€ lib/                # Supabase ν΄λΌμ΄μ–ΈνŠΈ
β”‚   β”‚   └── styles/             # CSS (Tailwind, ν…Œλ§ˆ, 폰트)
β”‚   └── package.json
β”‚
β”œβ”€β”€ infra/                      # 인프라 및 DB μŠ€ν‚€λ§ˆ
β”‚   └── database/               # PostgreSQL λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ (001~010)
β”‚
└── README.md

πŸš€ μ‹œμž‘ν•˜κΈ°

사전 μš”κ΅¬μ‚¬ν•­

  • Node.js 20+
  • npm λ˜λŠ” pnpm
  • Supabase ν”„λ‘œμ νŠΈ (PostgreSQL)
  • AWS 계정 (Bedrock, S3 μ ‘κ·Ό κΆŒν•œ)

Backend μ„€μΉ˜ 및 μ‹€ν–‰

cd backend
npm install

# .env 파일 μ„€μ • (μ•„λž˜ ν™˜κ²½ λ³€μˆ˜ μ„Ήμ…˜ μ°Έκ³ )
cp .env.example .env

# 개발 μ„œλ²„ μ‹€ν–‰
npm run dev

# ν”„λ‘œλ•μ…˜ μ‹€ν–‰
npm start

Frontend μ„€μΉ˜ 및 μ‹€ν–‰

cd frontend
pnpm install   # λ˜λŠ” npm install

# .env 파일 μ„€μ •
cp .env.example .env

# 개발 μ„œλ²„ μ‹€ν–‰
pnpm dev

ν…ŒμŠ€νŠΈ μ‹€ν–‰

cd backend

# 전체 ν…ŒμŠ€νŠΈ
npm test

# λ‹¨μœ„ ν…ŒμŠ€νŠΈλ§Œ
npm run test:unit

# Property-Based ν…ŒμŠ€νŠΈλ§Œ
npm run test:property

πŸ”‘ ν™˜κ²½ λ³€μˆ˜

Backend (backend/.env)

λ³€μˆ˜ μ„€λͺ…
NODE_ENV μ‹€ν–‰ ν™˜κ²½ (development / production / test)
PORT μ„œλ²„ 포트 (κΈ°λ³Έ: 3000)
SUPABASE_URL Supabase ν”„λ‘œμ νŠΈ URL
SUPABASE_KEY Supabase 곡개 ν‚€ (anon key)
SUPABASE_SERVICE_KEY Supabase μ„œλΉ„μŠ€ λ‘€ ν‚€ (μ„œλ²„ μ „μš©)
JWT_SECRET JWT μ„œλͺ… λΉ„λ°€ ν‚€
AWS_ACCESS_KEY_ID AWS μ•‘μ„ΈμŠ€ ν‚€
AWS_SECRET_ACCESS_KEY AWS μ‹œν¬λ¦Ώ ν‚€
AWS_REGION AWS 리전
RESEND_API_KEY Resend 이메일 API ν‚€
RESEND_FROM_EMAIL λ°œμ‹  이메일 μ£Όμ†Œ
FRONTEND_URL ν”„λ‘ νŠΈμ—”λ“œ URL (CORS)
WS_ENDPOINT WebSocket API Gateway μ—”λ“œν¬μΈνŠΈ
S3_BUCKET S3 버킷λͺ…

Frontend (frontend/.env)

λ³€μˆ˜ μ„€λͺ…
VITE_API_BASE_URL λ°±μ—”λ“œ API URL
VITE_SUPABASE_URL Supabase ν”„λ‘œμ νŠΈ URL
VITE_SUPABASE_ANON_KEY Supabase 곡개 ν‚€

πŸ—„ λ°μ΄ν„°λ² μ΄μŠ€

Supabase PostgreSQL 기반. λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ νŒŒμΌμ€ infra/database/ 에 μˆœλ²ˆλŒ€λ‘œ μœ„μΉ˜ν•©λ‹ˆλ‹€.

ν…Œμ΄λΈ” ꡬ성

ν…Œμ΄λΈ” μ„€λͺ…
users μ‚¬μš©μž 계정 (User, Admin)
user_agreements μ•½κ΄€ λ™μ˜ 이λ ₯
cards 결제 μΉ΄λ“œ 사전 등둝
categories λ¬Όν’ˆ μΉ΄ν…Œκ³ λ¦¬ (7개: μ½˜μ„œνŠΈ, 쑸업사진, μ—¬ν–‰, μΊ ν•‘, κ²°ν˜Όμ‹, λ©΄μ ‘, νŽ˜μŠ€ν‹°λ²Œ)
item_types μΉ΄ν…Œκ³ λ¦¬λ³„ μ„ΈλΆ€ λ¬Όν’ˆ νƒ€μž…
items λŒ€μ—¬ λ¬Όν’ˆ
rentals λŒ€μ—¬ 거래 (μ—μŠ€ν¬λ‘œ 보증금 포함)
receipt_photos 수령 인증 사진
chat_rooms 1:1 μ±„νŒ…λ°©
chat_messages μ±„νŒ… λ©”μ‹œμ§€ (CleanBot 필터링 μƒνƒœ)
notifications μ•Œλ¦Ό
ws_connections WebSocket ν™œμ„± μ—°κ²°
reports μ‹ κ³  λ‚΄μ—­

μŠ€ν‚€λ§ˆ 적용

# Supabase Dashboard SQL Editorμ—μ„œ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰
# λ˜λŠ” psql CLI둜:
export DATABASE_URL="postgresql://postgres:[PASSWORD]@[HOST]:5432/postgres"
psql "$DATABASE_URL" -f infra/database/001_schema.sql
psql "$DATABASE_URL" -f infra/database/002_indexes.sql
psql "$DATABASE_URL" -f infra/database/003_seed.sql
# ... 010κΉŒμ§€ 순차 적용

πŸ“‘ API μ—”λ“œν¬μΈνŠΈ

인증 (Auth)

Method Path μ„€λͺ…
POST /auth/register νšŒμ›κ°€μž…
POST /auth/login 둜그인
GET /auth/me λ‚΄ 정보 쑰회
POST /auth/verify-email 이메일 인증 확인
POST /auth/resend-verification 인증 메일 μž¬λ°œμ†‘

AI 챗봇

Method Path μ„€λͺ…
POST /ai/chat AI λ¬Όν’ˆ μΆ”μ²œ λŒ€ν™”

μ±„νŒ…

Method Path μ„€λͺ…
POST /chat/send λ©”μ‹œμ§€ 전솑 (CleanBot 검사 포함)

WebSocket

Event μ„€λͺ…
$connect WebSocket μ—°κ²°
$disconnect WebSocket ν•΄μ œ

πŸ“‚ μΉ΄ν…Œκ³ λ¦¬ 및 λ¬Όν’ˆ λΆ„λ₯˜

μΉ΄ν…Œκ³ λ¦¬ μ„ΈλΆ€ λ¬Όν’ˆ
🎀 μ½˜μ„œνŠΈ 울트라 ν•Έλ“œν°, λŒ€ν¬μΉ΄λ©”λΌ, 응원봉, 손풍기, 보쑰배터리, μŒμ•ˆκ²½, λ—μžλ¦¬, 기타
πŸŽ“ 쑸업사진 학사λͺ¨, μ‘Έμ—…κ°€μš΄, κ½ƒλ‹€λ°œ, μ •μž₯, ꡬ두, 기타
✈️ μ—¬ν–‰ 돼지코, 캐리어, λ””μΉ΄, 보쑰배터리, κ³ ν”„λ‘œ, μ—¬ν–‰μš© μ™€μ΄νŒŒμ΄(에그), 기타
πŸ•οΈ μΊ ν•‘ ν…νŠΈ, 타프, μ‰˜ν„°, 침ꡬ, κ³„μ ˆμš©ν’ˆ, 쑰리도ꡬ, 식기, 의자, ν…Œμ΄λΈ” λ“±
πŸ’ κ²°ν˜Όμ‹ ν•˜κ°λ£©, ꡬ두, λ„₯타이, 기타
πŸ’Ό λ©΄μ ‘ 면접룩, ꡬ두, 기타
πŸ–οΈ νŽ˜μŠ€ν‹°λ²Œ μ˜μƒ, 방수팩, μ„ κΈ€λΌμŠ€, 기타

πŸ‘₯ νŒ€μ›

κ²½ν¬λŒ€ν•™κ΅ 컴퓨터곡학과 ACC 2026 ν”„λ‘œμ νŠΈ β€” Team 6 2024103291 κ³ λͺ…μ£Ό myoungjugo 2025105390 μ˜€μ†Œμ› wanimetro


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

이 ν”„λ‘œμ νŠΈλŠ” ν•™μˆ  λͺ©μ μœΌλ‘œ κ°œλ°œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages