요청이 들어오면 인근 기사들에게 동시에 뿌리되 **먼저 수락한 한 명에게만 배차가 확정**되고(중복 배차 차단), 기사 위치와 진행 상태가 고객 화면에 실시간으로 갱신되며, 완료 시 거리·할증 기준으로 기사 수수료와 플랫폼 수수료가 자동 분리 정산되는 서비스
‘MVP 기획’·‘AI 빌드 기획 패키지’·‘프로토타입 프롬프트’는 빌드 패키지 하나에 함께 들어갑니다 — 따로 결제하지 않습니다.
무엇을 만드나?
MVP 기획 · 베타 무료
PRD·기능정의·화면목록·DB·API 계약까지 — 이 자료로 저희가 먼저 만들어 확인시켜드리거나, 직접 개발에 바로 쓰실 수 있습니다.
샘플은 여기까지 공개합니다
파일 다운로드와 전문(全文) 복사는 실제 결과물에서만 제공됩니다. 내 아이디어를 입력하면 같은 형식의 결과물을 받아볼 수 있습니다.
클릭 몇 번으로 동네 소상공인/관제자가 웹에서 퀵서비스 요청을 등록하면, 가까운 기사가 실시간으로 수락하고 진행 상황을 고객과 함께 볼 수 있는 간단한 웹서비스입니다. 모든 배차·정산 이력이 자동 저장되어, 수동 전화·카톡 배차와 월말 분쟁을 줄이고 업무를 투명하게 만듭니다.
동네 퀵서비스 배차의 비효율성과 분쟁을 웹 서비스로 해소합니다. 관제 담당자는 요청을 등록하고, 기사는 실시간 알림으로 배차를 수락하며, 고객은 진행 상황을 웹에서 확인합니다. 모든 요청, 배차, 위치/상태, 수수료 기록이 자동으로 저장되고 실시간 공유되어 월말 정산과 문의 대응도 간편해집니다.
목표
비목표(1차 제외)
퀵서비스 요청 등록 및 기사 동시 배차
“관제 담당자가 퀵 요청을 등록하면, 인근 가용 기사에게 동시에 실시간 알림이 발송된다.”
기사 배차 수락 및 자동 상태 갱신
“기사 앱에서 알림을 받고 수락 버튼을 누르면, 해당 요청에 최초 수락자를 배정한다.”
배송 진행상태 및 기사 위치 실시간 공유
“고객 및 관제 담당자는 배송 상태(예: 픽업 중, 배송 중, 완료)와 기사의 실시간 위치를 웹에서 확인한다.”
기사별 자동 수수료 및 정산 기록
“모든 배차 건별로 기사 수수료율, 할증 조건 등 산식을 자동으로 기록하고 월말/건별 내역을 확인할 수 있다.”
관리자 대시보드 및 요청/기사 현황 관리
“관제 담당자는 웹 대시보드에서 모든 요청/배차/기사 현황을 실시간 모니터링한다.”
핵심 기능(MVP): 관리자를 통한 퀵서비스 요청/배차/수락/진행 추적 + 데이터 이력화. 결제, 자동복구, 네이티브앱은 대상 아님.
1단계 — 사용자 인증 및 기본 데이터 모델, 관제/기사 요청·배차 UI
Firebase Auth + 각 역할별 대시보드 틀/라우팅 + 퀵서비스 요청 생성/배차 알림/수락 핵심 flow (Firestore CRUD, 실시간 갱신)
2단계 — 실시간 배송상태/위치 공유, 수수료·정산 기록, 관리자 대시보드
기사 위치 실시간 갱신(폴링 또는 Websocket-like 실시간 read), 수수료 데이터 기록, 요청 상세/이력/정산 데이터 노출, 주문·기사 필터·검색
견적 참고 · 진입장벽이 낮은 웹기반(Mobile Web 호환), 외부 결제/굵직한 배차 로직은 제외, 인수 테스트/검증까지 약 4~6주 예상. 수수료 산식은 로직 내 고정으로 구현(관리 UI 없음), 모든 민감정보는 Firestore 보안규칙/서버·클라이언트 auth로 보호 전제.
랜딩페이지(로그인/회원 유형 선택) /
LoginForm · UserTypeSelect
상태: authenticating, loginError
요청 등록(관제 담당자) /admin/request/new
RequestForm · MapAddressPicker
상태: submittingRequest, formError
기사 알림·배차 수락 화면 /driver/requests
NewRequestList · RequestDetailModal · AcceptButton
상태: loadingRequests, acceptingRequest, acceptSuccess
고객 배송 진행 조회 /customer/track/:requestId
DeliveryStatusSteps · DriverLocationMap
상태: loadingStatus, realtimeLocationUpdate
관리자 대시보드(요청·기사 현황) /admin/dashboard
RequestListTable · DriverList · StatusBadge · RequestDetail
상태: loadingData, selectedRequest
requests
drivers
dispatches
users
commissions
### API/서버액션 명세 (MVP 기준)
#### 인증: 모든 엔드포인트/서버액션은 Firebase Auth Bearer Token(Authorization 헤더) 필요. 일부(로그인/회원가입) 제외.
#### 1. 요청 등록
- POST /api/requests
- 입력: { pickup_location, dropoff_location, distance_km }
- 출력: { requestId }
- 인증: 소상공인(User 역할)
나머지 41줄은 실제 결과물에서 확인할 수 있습니다
### 주요 의사결정 및 리스크/대응 - **Next.js 서버액션/라우트핸들러 단일화**: 서버만 DB 쓰기 허용, 클라이언트에서는 Firestore 직접 쓰기 금지 → Firestore 규칙, 서버 API 양끝 단에서 Auth/Role 체크 반복 필요. - **수수료 정책 하드코딩**: 복잡한 커스텀 정책 UI 미지원은 대응 필요. 변경 요구 오면 코드 수정으로만 반영. - **실시간성 보장 수준**: Firestore onSnapshot으로 최소한의 실시간 경험 제공하나, WebSocket처럼 완전(밀리초 단위) X. 실사용 중 동시성·정합성 문제 있을 수 있어 lock 처리/에러 UI 반드시 구현. - **결제 미구현**: MVP 범위 고수. 이슈 발생(결제 문의 등) 시 명확하게 안내. - **배포 환경 변수 관리**: .env.local 등 외부 git 무노출 정책. Firebase 서비스 키 등은 절대 클라이언트 번들 포함/직접 송출되지 않음. - **테스트 유저 및 데이터 관리**: 일반 데이터와 테스트 데이터식 구분이 필요. QA 시 실제 운전자/소상공인 ID와 테이블구조 엄격 구분.
### 수용 테스트 체크리스트 #### 요청 등록/배차 - [ ] 소상공인 회원이 요청 생성 후, DB에 정확히 기록된다. - [ ] 인근 기사는 새로운 요청 알림 및 조회가 즉시 가능하다. - [ ] 두 기사 동시 수락 시, 한 기사만 최종 배정되고 다른 쪽은 거절 처리된다. - [ ] 아무도 수락하지 않으면 요청이 계속 미배정 상태로 남는다. #### 배송 진행/상태 공유 - [ ] 배차된 한 기사만 실제 배송 진행 상태를 변경할 수 있다.
나머지 12줄은 실제 결과물에서 확인할 수 있습니다
M0스토리/모델 구조 설계 및 Firestore 초기화
M1Next.js 프로젝트 및 디자인 토큰/레이아웃 구축
M2핵심 첫 화면(퀵 요청 목록) 스텁 구현
핵심이 동작하는 결과물로 먼저 만들어 확인하실 수 있도록 검토해 드립니다. 검증된 전문가에게 직접 의뢰할 수도 있습니다.
이 자료로 저희가 먼저 만들어 확인시켜드리거나, 개발자에게 그대로 전달할 수 있습니다.