국제 창작 공모전 참가자를 위한 접수·결제·마이페이지 플랫폼을 React와 Node.js 기반으로 설계합니다.
국제 창작 공모전 참가자를 위한 접수·결제·마이페이지 플랫폼을 React와 Node.js 기반으로 설계합니다. 공모전별로 달라지는 제출 항목을 JSON 스키마 기반 동적 폼으로 구현하고, 5단계 위저드와 파일 업로드 미리보기, PG 결제 연동까지 하나의 흐름으로 통합합니다. 다국어(영/한) 처리와 미성년자 보호자 동의 절차도 함께 반영하여 국제 공모전 운영 요건을 충족하는 데모로 구현합니다.
작업 범위
주요 업무

국가·도시·분야·상태로 필터링 가능한 공모전 카드 갤러리에서 참가자가 관심 공모전을 탐색하고 상세 요강을 확인합니다.
국가·도시·분야·상태 4축 필터를 조합 가능한 동적 쿼리 빌더로 구현하고, quick-view 드로어에서 상세 페이지 이동 없이 공모전 요강을 즉시 확인할 수 있는 구조를 설계합니다.

01 참가자정보 → 02 작품정보 → 03 파일업로드 → 04 확인/결제 → 05 접수완료로 이어지는 5단계 위저드로 참가자가 작품을 제출합니다.
위저드 이탈 후 재접속 시 서버에 저장된 마지막 단계로 자동 복귀시키는 세션 복구 로직을 구현하여, 미성년자 참가자가 보호자와 나눠 작성해도 작업이 유실되지 않는 흐름을 설계합니다.

참가비 결제와 해외 본선 참가비 별도 결제를 분리 처리하며, 결제 성공/실패에 따라 다른 안내 화면으로 분기합니다.
참가비와 해외 본선 참가비를 별도 트랜잭션으로 분리하면서도 하나의 접수 흐름 안에서 자연스럽게 이어지도록 상태 머신 기반 결제 단계 관리 구조를 설계합니다.

내 접수 현황, 심사 결과, 결제 내역, 인증서(영/국문), 해외 본선 신청을 5개 탭으로 확인·관리합니다.
접수·심사·결제·인증서·해외본선 5개 도메인의 데이터를 하나의 마이페이지 셸에서 탭 단위로 독립 로딩하는 구조를 설계하여, 미성년자 참가자의 보호자도 필요한 정보만 빠르게 확인할 수 있도록 구현합니다.

5개 역할 권한 모델, 공모전별 동적 폼 스키마, PostgreSQL 테이블 22개 설계
Express 기반 5단계 위저드 API, 임시저장/이어작성 로직, PG 연동 API 18개 구현
React 기반 공모전 탐색·마이페이지 등 10개 화면 구현, 파일 업로드 미리보기 적용
영/한 i18n 전면 적용, 결제·업로드 흐름 E2E 테스트 40개 케이스 작성