배광민 · lirodek0106
March Palette — 공방 운영 관리자 웹
공방 운영자가 예약 일정, 수강생, 수강권과 입금, 환불, 수익을 한곳에서 관리하는 웹 서비스입니다. March Palette 고객 서비스와 연결되며, 관리자 업무에 집중한 별도 프로젝트로 소개합니다.
주요 기능
• 예약 달력에서 수업 일정 조회와 예약 등록·변경·취소, 정원·남은 수강권·예약 가능 시간 확인
• 수강생 직접 등록과 승인, 회원별 수강권 지급·횟수 관리, 관리자 권한 관리
• 상품의 가격·횟수·기간·소개와 전용 수업 일정 설정
• 구매 요청의 입금 대조, 수강권 지급과 구매 영수증, 전액·부분 환불 및 수강권 회수 기록
• 구매 수입·환불 지출과 일반 수입·고정지출을 반영한 기간별 순수익 조회
• 수강생별 1:1 상담, 알림 발송 기록과 사용자·관리자 활동 로그 조회
• 한국 시간 기준 예약 공개 기간, 운영 시간·정원·공방 정보 설정
구현 방식
React·TypeScript·Vite 관리자 화면을 FSD 구조로 구성하고 Fastify API와 PostgreSQL·Flyway를 연결했습니다. DTO·한국 시간 계산·HTTP 처리를 공통 모듈로 공유합니다. 버전 확인과 동일 요청 재시도 키로 충돌·중복 처리를 제어하며, 중요한 변경은 확인창과 처리 사유를 거칩니다. 좁은 화면에서는 하단 메뉴를 사용하고 메뉴별 사용 가이드를 제공합니다.
운영 흐름과 화면 안내
입금은 운영자가 실제 은행 내역을 대조하며, 환불도 실제 송금 후 결과를 기록합니다. 자동 계좌이체나 세무 신고 기능은 아닙니다. 전용 상품 예약의 시간 변경은 취소 후 재예약으로 처리합니다. 관리자 사이트는 로그인 후 이용합니다.
대표 이미지는 공개 사용 가이드의 수익 현황 화면입니다. 합성 자료로 촬영된 예시이며 실제 고객 정보나 실제 매출을 나타내지 않습니다.
사용 기술
Node.js · TypeScript · React · PostgreSQL · Vite · Vitest · Flyway · Fastify · Zod · Playwright