소비자가 원하는 상품을 추천하고, 가장 저렴하게 찾을 수 있는 전자상거래 플랫폼.
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 모델 개발 |
Playwright
Prophet,
Sentence-Transformers
AWS-EC2
- 이메일 회원가입/로그인: 이메일 인증 코드 기반 회원가입
- OAuth2 소셜 로그인: Google, Kakao 계정으로 간편 로그인
- JWT 토큰 관리: 자동 토큰 갱신 (Access Token 15분, Refresh Token 7일)
- 역할 기반 권한: Guest, User, Seller, Admin 4단계 권한 관리
- 통합 상품 시스템: 메인 상품(크롤링/관리자) + 판매자 상품 통합 관리
- 계층형 카테고리: 무한 depth 카테고리 구조 지원
- 다중 이미지: 상품당 여러 이미지 등록 및 순서 관리
- 품질 점수 시스템: 이미지 품질, 콘텐츠 완성도, CTR 종합 평가
- 재고 관리: 실시간 재고 추적 및 품절 표시
- 브랜드몰 운영: 판매자별 독립적인 브랜드 페이지
- 상품 등록/수정: 판매자가 직접 상품 등록 및 관리
- 판매자 대시보드: 판매 통계, 주문 현황 실시간 조회
- 자동 승인 시스템: MVP 단계 판매자 즉시 승인
- 장바구니: 실시간 장바구니 동기화 및 수량 조절
- 찜 목록: 관심 상품 저장 및 관리
- 주문/결제: 배송지 입력, 주문서 생성, 주문 내역 조회
- 주문 관리: 주문 취소, 배송 추적 (MVP: 기본 기능만)
- Personalized Model: CF, CBF 기반 개인화 추천 알고리즘 모델
- Price log Model: 가격 로그, 계절성 평가 기반 상품 state 설정 및 이상치 탐지 모델
- Recipe Gap Filling Model: 레시피 데이터 기반 추가 재료 추천 알고리즘 모델
- AIRScout Model: TF-IDF, Ridge 모델, ko-SBert, BM25 모델 앙상블, 문맥기반 보조 추천 알고리즘 모델
- 비즈니스 핵심 지표: 비즈니스 성과 지표 및 추천, 주문 핵심 통계, 리스크 알림
- 추천 알고리즘 성과 지표: 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
# 프로젝트 루트로 이동
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# 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# 백엔드 디렉토리로 이동
cd backend
# 의존성 설치
pip install -r requirements.txt
# 마이그레이션 적용
python manage.py migrate
# 샘플 데이터 임포트 (선택)
python manage.py import_products
# 개발 서버 실행 (포트 8000)
python manage.py runserver 8000# 전체 테스트
python manage.py test
# 특정 앱 테스트
python manage.py test authentication
python manage.py test products# 프론트엔드 디렉토리로 이동
cd frontend
# 의존성 설치
npm install# .env.development 파일이 이미 있는지 확인
# 없으면 생성:
echo "VITE_API_BASE_URL=http://localhost:8000" > .env.development# 개발 서버 실행 (포트 5173)
npm run dev
# TypeScript 타입 체크
npm run type-check
# 빌드 (프로덕션)
npm run build
# 빌드 결과 미리보기
npm run preview- Backend 서버 실행 (포트 8000)
- Frontend 서버 실행 (포트 5173)
- 브라우저에서
http://localhost:5173접속
MIT License
이 프로젝트에 기여하고 싶으시다면 CONTRIBUTING.md를 참고해주세요.
