https://porpolio-web-community-f3d4a.web.app/
Flutter와 Firebase를 활용해 사용자들이 자신의 포트폴리오를 작성하고 공유할 수 있는 커뮤니티형 포트폴리오 웹앱을 개발했습니다.

사용자는 다음과 같은 기능을 수행할 수 있습니다:
| 구분 | 사용 기술 |
|---|---|
| 프론트엔드 | Flutter (Web/Mobile Responsive) |
| 상태관리 | Provider |
| 백엔드 | Firebase Firestore, Firebase Auth |
| 배포 | Firebase Hosting |
| 문서 출력 | pdf 패키지를 이용한 포트폴리오 PDF 생성 및 다운로드 |
PortfolioCategory → PortfolioBlock → BlockDetail 계층으로 구성
users/{userId}/portfolioCategories 하위에 카테고리 및 블록 저장user_profiles에는 사용자 프로필(name, email, url 등)과 함께 viewCount 저장portfolios/{userId}에는 PortfolioSummary 저장하여 검색 및 탐색에 활용

pdf 패키지를 이용해 포트폴리오 전체를 PDF로 구성| 문제 상황 | 해결 방법 |
|---|---|
| Firebase 데이터 구조 설계 | Firestore Subcollection을 활용해 구조화 |
| 모바일/웹의 PDF 처리 차이 | dart:html vs path_provider + share_plus 플랫폼 분기 처리 |
| 로그인 여부에 따른 편집 권한 | Firebase Auth와 userId를 비교하여 조건 분기 |
| 사용자 정의 정렬, 검색 | Provider에서 상태 관리 및 필터링 처리 |