Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

사용자 맞춤형 자료 추천과 시각화 아카이빙을 결합한 협업 플랫폼

prgrms-web-devcourse-final-project/WEB5_6_ZOOPZOOP_FE

Repository files navigation


📖 프로젝트 소개

ZoopZoop은 웹에서 찾은 콘텐츠를 손쉽게 저장하고,
폴더별로 정리하며, 팀과 함께 시각적으로 아이디어를 확장할 수 있는 지식 협업 플랫폼입니다.

🎯 주요 가치

  • 원클릭 수집 — 웹 탐색 중 콘텐츠를 즉시 저장
  • 체계적 관리 — 폴더, 태그, 검색으로 빠른 탐색
  • 실시간 협업 — Presence·댓글 스레드로 함께 작업
  • 개인화 추천 — 관심사 기반 뉴스 자동 큐레이션

🧩 핵심 기능

🧭 크롬 확장 프로그램 — 웹에서 즉시 저장

  • 브라우저에서 클릭 한 번으로 콘텐츠 저장
  • 제목, 이미지, 요약 정보 자동 추출
  • 로그인 상태와 연동되어 바로 아카이브 반영

📁 아카이브 — 저장과 정리의 중심

아카이브-URL-등록

  • 뉴스·블로그·영상 등 다양한 콘텐츠를 한곳에 보관
  • 폴더별 관리태그 기반 검색 지원
  • 파일 CRUD, 휴지통 복원 기능 내장

📰 뉴스 페이지 — AI 추천 & 맞춤 탐색

AI 추천 키워드 검색
뉴스-ai-추천 키워드 검색
  • 관심사 기반 AI 뉴스 추천
  • 키워드 검색으로 주제별 뉴스 탐색
  • 저장 버튼 클릭 시 아카이브로 즉시 추가

👥 팀 스페이스 — 함께 아이디어를 확장하는 공간

스페이스 관리 데이터 공유
대시보드-생성 대시보드-불러오기
  • 팀별 스페이스 생성 및 초대 관리
  • 스페이스별 뉴스 추천 및 아카이브 공유
  • 실시간 동기화로 협업 데이터 일관성 유지

🎨 플로우 에디터 — 생각의 흐름을 시각화

플로우 사용 실시간 협업
플로우-편집기 플로우-실시간-협업
  • React Flow 기반 노드·엣지 그래프 편집
  • 드래그·줌·미니맵 등 편리한 조작 지원
  • 카테고리별 노드 관리 및 연동
  • Liveblocks를 통한 실시간 커서·댓글·Presence

🔐 소셜 인증 — 안전하고 간편한 로그인

로그인-계정-관리

  • Google / Kakao OAuth 지원
  • Refresh Token 자동 갱신
  • 안전한 세션 및 로그아웃 처리

🛠 기술 스택 & 선택 이유

Frontend Framework

기술 버전 선택 이유
Next.js 15 App Router, Turbopack 기반 SSR/SSG 최적화
React 19 최신 동시성 기능, Server Components 지원
TypeScript 5 정적 타입 안정성과 협업 생산성

Realtime & Flow

기술 선택 이유
Liveblocks 실시간 Presence/Comment Thread 구축 용이
XYFlow (React Flow) 노드 기반 플로우 UI, 커스텀 노드/엣지 확장성

State & Data

기술 선택 이유
Tanstack Query 서버 상태 캐싱/동기화, 로딩/에러 관리 일원화
Zustand 전역 상태를 단순하고 가볍게 관리

UI & Styling

기술 선택 이유
Shadcn/UI Tailwind 스타일로 구성해 커스터마이징이 쉽고, 디자인 시스템 일관성을 유지할 수 있음
Lucide Icons 일관된 아이콘 세트
Tailwind CSS 4 빠른 스타일링, 클래스 정렬 자동화 (Prettier 플러그인)

Developer Experience

기술 선택 이유
Storybook 9 컴포넌트 단위 개발/문서화
ESLint + Prettier + Husky 일관된 코드 품질 유지

🚀 빠른 시작

사전 요구사항

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

설치 및 실행

# 1. 저장소 클론
git clone https://github.com/your-username/zoopzoop.git
cd zoopzoop
# 2. 의존성 설치
npm install
# 3. 환경 변수 설정
cp .env.example .env.local
# 4. 개발 서버 실행
npm run dev

브라우저에서 http://localhost:3000 열기


⚙️ 환경 변수

.env.local 파일을 생성하고 아래 항목을 설정합니다.

# 백엔드 API 엔드포인트
API_URL=https://api.example.com
# Liveblocks 서버 키 (서버 전용)
NEXT_LIVEBLOCKS_SECRET_KEY=sk_liveblocks_xxx
변수 설명
API_URL 백엔드 API 베이스 URL
NEXT_LIVEBLOCKS_SECRET_KEY Liveblocks 서버 인증용 시크릿 키 (/api/liveblocks-auth 사용)

📦 사용 가능한 스크립트

npm run dev # 개발 서버 실행 (Turbopack)
npm run build # 프로덕션 빌드
npm run start # 프로덕션 서버 시작
npm run lint # ESLint 검사
npm run format # Prettier 포맷 적용
npm run storybook # Storybook 서버 실행
npm run build-storybook # Storybook 정적 빌드

📁 폴더 구조 (Feature-Sliced Design)

src/
├── app/ # Next.js App Router, 전역 Provider
├── features/ # 사용자 액션 단위 (로그인, 업로드 등)
├── entities/ # 도메인 모델, 상태, 타입 (User, Archive, Space 등)
├── widgets/ # 독립 UI 블록 (Header, Sidebar 등)
└── shared/ # 공용 컴포넌트, 유틸, 타입, 라이브러리

ZoopZoop — 웹 지식의 흐름을 기록하고, 팀과 함께 발전시키는 공간 🧠✨

About

사용자 맞춤형 자료 추천과 시각화 아카이빙을 결합한 협업 플랫폼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.9%
  • Other 1.1%

AltStyle によって変換されたページ (->オリジナル) /