|
1 | | -# Nomadia |
| 1 | +<p align="center"> |
| 2 | + <a href="https://nomadia-two.vercel.app/"> |
| 3 | + <img width="200" height="200" alt="logo" src="./public/images/icons/logo.svg" /> |
| 4 | + </a> |
| 5 | +</p> |
2 | 6 |
|
3 | | -노마디아 readme 추가 예정 |
4 | | -웹후크 |
| 7 | +<div align="center"> |
| 8 | + |
| 9 | +# Nomadia : Nomad + Utopia |
| 10 | + |
| 11 | +### 어디서든 '나답게' 머무는 경험을 시작하세요. |
| 12 | + |
| 13 | +**노마디아 (Nomadia)** 는 노마드를 위한 **액티비티 예약 플랫폼**입니다. |
| 14 | +사용자가 직접 체험을 등록하고, 다른 노마드의 체험을 예약하며 경험을 공유할 수 있습니다. |
| 15 | + |
| 16 | +</div> |
| 17 | +<p align="center"> |
| 18 | +배포 링크: https://nomadia-two.vercel.app/ |
| 19 | +</p> |
| 20 | + |
| 21 | +<div align="center"> |
| 22 | +<details> |
| 23 | +<summary> 👀 Preview GIF/MP4</summary> |
| 24 | + |
| 25 | +#### 회원가입/로그인 |
| 26 | + |
| 27 | + |
| 28 | +#### 메인페이지 캐러셀 |
| 29 | + |
| 30 | +#### 메인페이지 리스트 |
| 31 | + |
| 32 | +#### 메인페이지 검색 |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +#### 체험 등록 |
| 37 | + |
| 38 | +https://github.com/user-attachments/assets/e7392d86-01c6-4a3e-9dea-505839d868ca |
| 39 | + |
| 40 | +#### 마이페이지 내 체험 관리 - 체험 수정 |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | +#### 마이페이지 내 체험 관리 - 체험 삭제 |
| 45 | + |
| 46 | + |
| 47 | +#### 마이페이지 예약 내역 - 취소 |
| 48 | + |
| 49 | + |
| 50 | +#### 마이페이지 예약 내역 - 후기 작성 |
| 51 | + |
| 52 | + |
| 53 | +#### 마이페이지 내 예약 현황 |
| 54 | + |
| 55 | +--- |
| 56 | + |
| 57 | +#### 상세페이지 |
| 58 | + |
| 59 | +https://github.com/user-attachments/assets/1dcba629-9388-41bc-a9a5-a5c0f5c12bc1 |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +</details> |
| 64 | +<br> |
| 65 | +</div> |
| 66 | + |
| 67 | +## 주요 기능 |
| 68 | + |
| 69 | +- 💻 **체험 등록** - 노마드가 직접 체험을 등록하고 관리 |
| 70 | +- 📅 **예약 시스템** - 실시간 예약 가능 날짜 확인 및 예약 |
| 71 | +- 🔍 **스마트 검색** - 카테고리, 지역별 체험 검색 |
| 72 | +- 👤 **마이페이지** - 예약 내역, 예약 현황, 체험 관리, 프로필 수정 |
| 73 | + |
| 74 | +## 기술 스택 |
| 75 | + |
| 76 | +### **Core Stack** |
| 77 | + |
| 78 | +| 기술 | 버전 | 설명 | |
| 79 | +| --------------- | ------------------- | ------------------------------------------- | |
| 80 | +| **Next.js** | 15.3.5 (App Router) | 파일 기반 라우팅, SSR로 SEO 최적화 | |
| 81 | +| **TypeScript** | 5.x | 정적 타입으로 개발 안정성 향상 | |
| 82 | +| **React** | 19.0.0 | 최신 기능(Server Components, Suspense) 활용 | |
| 83 | +| **TailwindCSS** | v4 + Turbopack | 빠른 빌드와 일관된 디자인 시스템 | |
| 84 | + |
| 85 | +### **Data & State Management** |
| 86 | + |
| 87 | +| 기술 | 설명 | |
| 88 | +| ------------------ | ---------------------------------------------- | |
| 89 | +| **TanStack Query** | 서버 상태 캐싱과 동기화로 API 요청 최적화 | |
| 90 | +| **Zustand** | 간단하고 직관적인 클라이언트 상태 관리 | |
| 91 | +| **Axios** | 안정적인 HTTP 클라이언트, 인터셉터로 토큰 관리 | |
| 92 | + |
| 93 | +### **Form & Validation** |
| 94 | + |
| 95 | +| 기술 | 설명 | |
| 96 | +| ------------------- | --------------------------- | |
| 97 | +| **React Hook Form** | 성능 최적화된 폼 라이브러리 | |
| 98 | +| **Zod** | TypeScript 기반 스키마 검증 | |
| 99 | + |
| 100 | +### **UI/UX** |
| 101 | + |
| 102 | +| 기술 | 설명 | |
| 103 | +| ----------------- | ----------------------------------- | |
| 104 | +| **shadcn/ui** | 커스터마이징 가능한 컴포넌트 시스템 | |
| 105 | +| **Framer Motion** | 부드러운 애니메이션과 인터랙션 | |
| 106 | +| **Swiper** | 반응형 캐러셀과 터치 슬라이더 | |
| 107 | + |
| 108 | +### **Development & Deployment** |
| 109 | + |
| 110 | +| 기술 | 설명 | |
| 111 | +| ----------------------- | -------------------------------- | |
| 112 | +| **Vercel** | Next.js 최적화된 배포 플랫폼 | |
| 113 | +| **Husky + lint-staged** | Git Hook으로 코드 품질 자동 검증 | |
| 114 | +| **Lighthouse CI** | 성능 및 접근성 지속적 모니터링 | |
| 115 | + |
| 116 | +## R&R |
| 117 | + |
| 118 | +<table> |
| 119 | + <tr> |
| 120 | + <td> |
| 121 | + <img src="./public/images/icons/nomadia.svg" alt="노마디아" width="200" /> |
| 122 | + </td> |
| 123 | + <td> |
| 124 | + <img width="700" alt="지윤" src="https://github.com/user-attachments/assets/5dc9a246-7db3-4770-98e2-1c8ca6500c96" /> |
| 125 | + </td> |
| 126 | + <td> |
| 127 | + <img width="700" alt="영현" src="https://github.com/user-attachments/assets/7a783360-154a-4bc8-be12-227523f40734" /> |
| 128 | + </td> |
| 129 | + <td> |
| 130 | + <img width="700" alt="준우" src="https://github.com/user-attachments/assets/a4e25b3d-5dd7-4579-afdf-f7c7721bf352" /> |
| 131 | + </td> |
| 132 | + <td> |
| 133 | + <img width="700" alt="동환" src="https://github.com/user-attachments/assets/af171698-31e7-4aec-a27f-e91394195e09" /> |
| 134 | + </td> |
| 135 | + </tr> |
| 136 | + <tr> |
| 137 | + <th>팀원</th> |
| 138 | + <td><strong>전지윤</strong>(팀장)</td> |
| 139 | + <td><strong>김영현</strong></td> |
| 140 | + <td><strong>김준우</strong></td> |
| 141 | + <td><strong>유동환</strong></td> |
| 142 | + </tr> |
| 143 | + <tr> |
| 144 | + <td><strong>페이지,<br> 기능</strong></td> |
| 145 | + <td> |
| 146 | + - 체험 상세 페이지<br> |
| 147 | + - 404 페이지, 에러 페이지<br> |
| 148 | + </td> |
| 149 | + <td> |
| 150 | + - 랜딩 페이지 기획 및 구현<br> |
| 151 | + - 메인 페이지<br> |
| 152 | + - 예약 내역 페이지<br> |
| 153 | + - 체험 등록 페이지<br> |
| 154 | + </td> |
| 155 | + <td> |
| 156 | + - 예약 현황 페이지<br> |
| 157 | + - 체험 검색 기능<br> |
| 158 | + </td> |
| 159 | + <td> |
| 160 | + - 로그인/회원가입 페이지<br> |
| 161 | + - 내 정보/체험 수정 페이지<br> |
| 162 | + - 내 체험 관리 페이지<br> |
| 163 | + </td> |
| 164 | + </tr> |
| 165 | + <tr> |
| 166 | + <td><strong>(shared)<br> 공통 컴포넌트, <br> 공통 로직</strong></td> |
| 167 | + <td> |
| 168 | + - Pagination<br> |
| 169 | + - Modal<br> |
| 170 | + - Calendar<br> |
| 171 | + - Infinite Scroll |
| 172 | + </td> |
| 173 | + <td> |
| 174 | + - Loading Spinner<br> |
| 175 | + - Skeleton<br> |
| 176 | + - Carousel<br> |
| 177 | + - Error Message<br> |
| 178 | + </td> |
| 179 | + <td> |
| 180 | + - Dropdown<br> |
| 181 | + - Header<br> |
| 182 | + - Footer<br> |
| 183 | + </td> |
| 184 | + <td>- Sidebar</td> |
| 185 | + </tr> |
| 186 | + <tr> |
| 187 | + <td><strong>기타</strong></td> |
| 188 | + <td>- ESLint, Prettier, settings.json 설정<br>- 프로젝트 리디자인</td> |
| 189 | + <td>- 공통 스타일 정의<br>- husky / LightHouse CI 설정 </td> |
| 190 | + <td>- 데모 영상</td> |
| 191 | + <td>- 배포<br> - 발표</td> |
| 192 | + </tr> |
| 193 | +</table> |
| 194 | + |
| 195 | +<br> |
| 196 | + |
| 197 | +## 프로젝트 문서 |
| 198 | + |
| 199 | +### 트러블슈팅 |
| 200 | + |
| 201 | +| 작성자 | 설명 | |
| 202 | +| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 203 | +| **전지윤** | [에러 핸들링 (in 앱 라우터)](https://www.notion.so/in-237bbeae3e2b80588e00f306680edaec) | |
| 204 | +| **김영현** | - [Props Hell 탈출기: Context API로 컴포넌트 최적화](https://www.notion.so/Props-Hell-Context-API-263b2ffc607580b5923cd91b1bd088d4) <br> - [Form-data 보안 취약점 해결](https://www.notion.so/form-data-263b2ffc607580fc9f92f3a23698cdd7?source=copy_link)<br> -[Tanstack Query를 활용한 API 중복 요청 해결](https://www.notion.so/Tanstack-Query-API-263b2ffc607580df8b40d836d1afb1fc?source=copy_link) <br> - [코드 스플리팅 & lazy loading 적용을 통한 페이지 최적화](https://www.notion.so/Lazy-Loading-263b2ffc607580088b60c780d4d67af7?source=copy_link) | |
| 205 | +| **김준우** | [커스텀 클래스 사용 시 타이포그래피 우선순위 문제](https://www.notion.so/248bbeae3e2b80adb9b2c8a16d298ea0) | |
| 206 | +| **유동환** | - | |
| 207 | + |
| 208 | +### 공통 컴포넌트, 로직 |
| 209 | + |
| 210 | +| 작성자 | 설명 | |
| 211 | +| ---------- | ------------------------ | |
| 212 | +| **전지윤** | (모달) BasicModal 사용법 | |
| 213 | +| | (모달) BasicModal 설계 | |
| 214 | +| **김영현** | | |
| 215 | +| **김준우** | | |
| 216 | +| **유동환** | | |
0 commit comments