대학 전시를 알리는 순간부터 감상이 이어지는 순간까지
작가와 관람자를 잇는 대학생 전시 플랫폼
src/
├── api/ # Axios 클라이언트, 엔드포인트, 에러 핸들링
│ ├── dto/ # 요청/응답 DTO 타입
│ └── endpoints/ # 도메인별 API 함수
├── assets/ # 이미지, 아이콘 등 정적 리소스
├── bootstrap/ # 앱 초기화 (MSW 등)
├── components/ # UI 컴포넌트
│ ├── ui/ # 디자인 시스템 공통 컴포넌트 (도메인 무관)
│ └── <feature>/ # 도메인별 컴포넌트 (예: exhibition, artwork)
├── constants/ # 상수 정의
├── hooks/ # 커스텀 훅 (queries/ : 서버 상태 훅)
├── mocks/ # MSW 핸들러
├── pages/ # 페이지 컴포넌트
├── providers/ # Context Provider
├── router/ # 라우트 설정
├── stores/ # 전역 상태 (Zustand)
├── styles/ # 글로벌 스타일, 디자인 토큰
│ ├── tokens/ # 디자인 토큰
│ │ ├── primitive.css # 원시 팔레트 (색상, 폰트 크기 등 원시 값)
│ │ └── semantic.css # 의미 토큰 (용도 기반)
│ ├── typography.css # 타이포그래피 유틸 클래스
│ └── index.css # 스타일 진입점
├── types/ # 공통 타입 정의
└── utils/ # 유틸리티 함수
전체 규칙은
CONVENTION.md를 따릅니다.
Node 18 이상, pnpm 10 이상이 필요합니다.
# 의존성 설치
pnpm install
# 개발 서버 실행
pnpm dev전체 화면 설계와 플로우는 아래 Figma 와이어프레임에서 확인할 수 있습니다.
| 구분 | 단계 |
|---|---|
| 온보딩 | 온보딩 → 비회원 둘러보기 또는 로그인 → (신규가입 시 닉네임 설정 → 가입완료) → 홈 |
| 관람 | 홈/탐색 → 전시 상세 → 작품 상세 / 콘텐츠 갤러리 / 후기·방명록·Q&A → 저장·기록(아카이브) |
| 전시 등록 | 전시 등록하기 → 작가 인증 → 기본정보 입력 → 전시 작가명 설정 → 전시 관리(대시보드) → 전시 등록 |
| 팀원 초대 | 전시 관리에서 초대 → 팀원이 초대 수락 → 작가명 설정 → 참여 완료 |
| 전시작 등록 | 전시 작업 → 작품 등록 → 기본정보·이미지 입력 → 등록 완료 |
flowchart LR
Onboard["온보딩"] --> Home["홈"]
Home --> Explore["탐색"]
Home --> Lounge["라운지"]
Home --> My["마이"]
Home --> Archive["아카이브"]
Home --> ExhCreate["전시 등록"]
Explore --> ExhDetail["전시 상세"]
Home --> ExhDetail
Archive --> ExhDetail
Archive --> ArtDetail["작품 상세"]
ExhDetail --> ArtDetail
My --> ExhCreate
ExhCreate --> ExhManage["전시 관리"]
ExhManage --> ExhWork["전시 작업(콘텐츠/전시작)"]
ExhManage --> Team["팀원 초대"]
ExhManage --> Publish["등록 완료"]
Publish --> ExhDetail