Skip to content

SellFresh/SSAFY_Class_18_Team_4_Final_Capstone

 
 

Repository files navigation

SelF

소비자가 원하는 상품을 추천하고, 가장 저렴하게 찾을 수 있는 전자상거래 플랫폼.

SelF-Logo

📌 프로젝트 소개

SelF은 농산물 전자상거래 플랫폼으로, 신선한 농산물을 합리적인 가격에 제공하는 것을 목표로 합니다. 판매자(농가, 유통업체)는 자신의 브랜드몰을 운영할 수 있으며, 소비자는 다양한 브랜드의 농산물을 한 곳에서 구매할 수 있습니다.

주요 특징:

  • 🛒 일반 상품(크롤링/관리자 등록) + 판매자 직접 등록 상품 통합 관리
  • 🏪 판매자 브랜드몰 시스템 (자체 상품 등록 및 관리)
  • 🧠 고도화 추천 알고리즘 기반 상품 추천 (Personalized, Price log, Gap Filling, AIRScout)
  • 🔐 다중 인증 방식 (이메일, Google OAuth, Kakao OAuth)
  • 💳 장바구니, 찜 목록, 주문/결제 통합 시스템
  • 📊 관리자 및 상품 통계 지표 (품질 점수, CTR, 사용자 행동 분석)

개발 기간

  • 1차 개발 기간: 2025.11.10 ~ 2025.11.24 (온라인 이커머스 MVP)
  • 추가 개발 기간: 2025.11.25 ~ 2025.12.26 (추천 알고리즘 및 서비스 고도화)
  • 팀 구성: 3명

👥 팀원 소개

이름 역할 GitHub 담당 기능
이준영 팀장/Data/AI/DevOps @junDevCodes Data 분석 , CI/CD 파이프라인 구축, AI 모델 개발
배용건 Frontend @dragun8 MVP 설계, UI/UX 구현,기획 및 자료조사
송준서 Backend/DevOps/AI Agent @Junseo5 API 개발, DB 설계, 기능 개발, AI 모델 개발

🛠 기술 스택

Frontend

VUE HTML5 CSS3 JavaScript TypeScript

Backend

Django DRF

Database

PostgreSQLRedis:Database

Crawling / Scraping

Playwright

Data Processing & ML/DL

Pandas Numpy Scikit-Learn Keras FastAPI Prophet, Sentence-Transformers

Cloud & Infra

Docker Docker-compose Nginx Github-Actions

AWS-EC2

Storage

Nginx AWS-S3

Authentication

OAuth2

Communicate

Git GitHub Slack Discord

✨ 주요 기능

1. 사용자 인증 시스템

  • 이메일 회원가입/로그인: 이메일 인증 코드 기반 회원가입
  • OAuth2 소셜 로그인: Google, Kakao 계정으로 간편 로그인
  • JWT 토큰 관리: 자동 토큰 갱신 (Access Token 15분, Refresh Token 7일)
  • 역할 기반 권한: Guest, User, Seller, Admin 4단계 권한 관리

2. 상품 관리

  • 통합 상품 시스템: 메인 상품(크롤링/관리자) + 판매자 상품 통합 관리
  • 계층형 카테고리: 무한 depth 카테고리 구조 지원
  • 다중 이미지: 상품당 여러 이미지 등록 및 순서 관리
  • 품질 점수 시스템: 이미지 품질, 콘텐츠 완성도, CTR 종합 평가
  • 재고 관리: 실시간 재고 추적 및 품절 표시

3. 판매자 센터

  • 브랜드몰 운영: 판매자별 독립적인 브랜드 페이지
  • 상품 등록/수정: 판매자가 직접 상품 등록 및 관리
  • 판매자 대시보드: 판매 통계, 주문 현황 실시간 조회
  • 자동 승인 시스템: MVP 단계 판매자 즉시 승인

4. 쇼핑 기능

  • 장바구니: 실시간 장바구니 동기화 및 수량 조절
  • 찜 목록: 관심 상품 저장 및 관리
  • 주문/결제: 배송지 입력, 주문서 생성, 주문 내역 조회
  • 주문 관리: 주문 취소, 배송 추적 (MVP: 기본 기능만)

5. 데이터 기반 추천

  • Personalized Model: CF, CBF 기반 개인화 추천 알고리즘 모델
  • Price log Model: 가격 로그, 계절성 평가 기반 상품 state 설정 및 이상치 탐지 모델
  • Recipe Gap Filling Model: 레시피 데이터 기반 추가 재료 추천 알고리즘 모델
  • AIRScout Model: TF-IDF, Ridge 모델, ko-SBert, BM25 모델 앙상블, 문맥기반 보조 추천 알고리즘 모델

6. 관리자 통계

  • 비즈니스 핵심 지표: 비즈니스 성과 지표 및 추천, 주문 핵심 통계, 리스크 알림
  • 추천 알고리즘 성과 지표: CTR, 구매전환율, 추천 기여 GMV 비율, 추천 알고리즘 별 성과 요약
  • 유저 행동 지표: DAU, MAU, 유저 구매 전환율, 장바구니 담기 수, 구매 수 실시간 집계
  • 서버 운영 지표: 크롤링 성공율, EC2 CPU 사용율, 네트워크 트래픽, 서비스 가용성
  • 유저 관리: 유저 현황, Role, 상태 설정 및 간편 유저 통계 제공

🏗 프로젝트 구조

SSAFY_Class_18_Team_4_Final_Capstone/
├── backend/                      # Django REST API 백엔드
│   ├── authentication/           # 사용자 인증 (이메일, OAuth2, JWT)
│   ├── products/                 # 상품, 카테고리, 장바구니, 찜 목록
│   ├── sellers/                  # 판매자 프로필 및 브랜드 관리
│   ├── orders/                   # 주문 및 주문 상품 관리
│   ├── project_self/             # Django 설정
│   ├── manage.py
│   └── requirements.txt
│
├── frontend/                     # Vue 3 + TypeScript 프론트엔드
│   ├── src/
│   │   ├── pages/                # 17개 페이지 (Home, MyPage, Seller, Brand 등)
│   │   ├── components/           # Layout, Section, UI 컴포넌트
│   │   ├── stores/               # Pinia 상태 관리 (auth, cart, products, orders, wishlist, ui)
│   │   ├── services/api/         # API 클라이언트 및 엔드포인트
│   │   ├── types/                # TypeScript 타입 정의
│   │   ├── composables/          # 재사용 로직 (useTimer, useScroll)
│   │   └── utils/                # 유틸리티 함수
│   └── package.json
│
├── crawler/
├── data/                         # 크롤링 날짜별 데이터(JSON)
├── docs/                         # 프로젝트 문서
│   ├── GIT_CONVENTION.md
│   ├── CODE_CONVENTION.md
│   ├── BRANCH_STRATEGY.md
│   ├── CODE_REVIEW.md
│   └── CONTRIBUTING.md
├── CLAUDE.md                     # AI 개발 가이드
└── README.md

🚀 설치 및 실행

요구사항

Backend

  • Python 3.9 이상
  • pip

Frontend

  • Node.js 18.x 이상
  • npm 또는 yarn

Backend 설치 및 실행

1. 가상환경 설정 (중요!)

# 프로젝트 루트로 이동
cd SSAFY_Class_18_Team_4_Final_Capstone

# 가상환경 활성화 (Windows Git Bash)
. venv/Scripts/activate

# 가상환경 활성화 (Windows CMD)
venv\Scripts\activate

# 가상환경 활성화 (Mac/Linux)
source venv/bin/activate

2. 환경 변수 설정

# backend/.env 파일 생성 (backend/.env.example 참고)
cp backend/.env.example backend/.env

# 필수 환경 변수 설정:
# - EMAIL_HOST_USER, EMAIL_HOST_PASSWORD (Gmail 앱 비밀번호)
# - GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
# - KAKAO_CLIENT_ID, KAKAO_CLIENT_SECRET

3. 의존성 설치 및 마이그레이션

# 백엔드 디렉토리로 이동
cd backend

# 의존성 설치
pip install -r requirements.txt

# 마이그레이션 적용
python manage.py migrate

# 샘플 데이터 임포트 (선택)
python manage.py import_products

# 개발 서버 실행 (포트 8000)
python manage.py runserver 8000

4. 테스트 실행

# 전체 테스트
python manage.py test

# 특정 앱 테스트
python manage.py test authentication
python manage.py test products

Frontend 설치 및 실행

1. 의존성 설치

# 프론트엔드 디렉토리로 이동
cd frontend

# 의존성 설치
npm install

2. 환경 변수 설정

# .env.development 파일이 이미 있는지 확인
# 없으면 생성:
echo "VITE_API_BASE_URL=http://localhost:8000" > .env.development

3. 개발 서버 실행

# 개발 서버 실행 (포트 5173)
npm run dev

# TypeScript 타입 체크
npm run type-check

# 빌드 (프로덕션)
npm run build

# 빌드 결과 미리보기
npm run preview

전체 시스템 실행 순서

  1. Backend 서버 실행 (포트 8000)
  2. Frontend 서버 실행 (포트 5173)
  3. 브라우저에서 http://localhost:5173 접속

📝 협업 규칙

🔗 링크

📄 라이센스

MIT License

🤝 기여

이 프로젝트에 기여하고 싶으시다면 CONTRIBUTING.md를 참고해주세요.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •