배광민 · lirodek0106
March Palette — 공방 예약·운영 서비스
미술 공방 수강생의 수업 예약과 수강권, 공방 대표의 일정·회원·운영 관리를 연결하는 사이드 프로젝트입니다. React 관리자 웹, Expo 고객 앱과 Fastify 예약 API를 함께 구성합니다.
주요 기능
• 한국 시간 기준 예약 가능 일정, 영업일·휴무·정원·마감·개인 예약 상한 관리
• 자동 예약 공개 기간과 고정 종료일 설정, 기존 예약을 보존하는 운영 정책
• 예약 생성·변경·취소와 관리자 일정 이동, 버전 충돌 시 최신 상태 재확인
• 상품·수강권 구매 요청, 실제 입금 확인 후 지급, 예약 시 차감과 기한 내 취소 시 반환
• 회원 승인과 권한 관리, 프로필 사진과 고객·관리자 1:1 상담
아키텍처
TypeScript·Node.js·Fastify API와 PostgreSQL 저장소, Flyway 변경 이력을 사용합니다. React 관리자와 React Native·Expo 고객 앱은 FSD 구조를 사용하고, DTO·한국 시간 계산·HTTP 요청 처리를 공통 프론트엔드 모듈로 공유합니다. 예약 버전과 동일 요청 재시도 키로 충돌과 중복 처리를 제어합니다.
검증과 공개 범위
Vitest 정책 테스트, Playwright 화면 검증과 별도 합성 PostgreSQL 검증이 구성되어 있습니다. 현재 개발·검증 단계이며, iOS·Android 스토어 출시와 서명된 실기기 검수는 별도입니다. 자동 결제와 실제 문자·알림톡 수신 검증을 완료된 기능으로 소개하지 않습니다.
사용 기술
Node.js · TypeScript · React · PostgreSQL · React Native · Vite · Vitest · Flyway · Fastify · Expo · Zod · Playwright