치과 예약 시스템
그누보드5 + 영카트5 기반 치과 예약 시스템
Bootstrap
JavaScript
PHP
MySQL
🦷 그누보드5/영카트5 치과 예약 시스템
치과(병원)에 맞게 설계한 예약 솔루션입니다.
✅ 주요 기능
예약 시스템
- FullCalendar 없이 순수 JS 달력 (그누보드 호환성 극대화)
- 의사/진료과별 예약
- 진료항목 선택 → 소요시간·가격 자동 반영
- 예약 단위: 관리자에서 설정 (10/15/20/30/40/60/90/120분)
- 점심시간 자동 제외
- 의사별 개별 휴무 / 병원 전체 휴무 설정
- 무료 상담은 결제 없이 즉시 확정
결제 (영카트5 연동)
- 무통장입금
- PG사: 이니시스 / KCP / LG U+ / 나이스페이 / 토스페이먼츠
- KCP:
orderform.1.phpinclude 방식 (⚠️ 핵심 주의사항)
예약 상태 6단계
pending → confirmed → visited / no_show / cancelled / admin_cancelled
관리자
- 예약 목록 (날짜/의사/상태 필터, 키워드 검색)
- 일괄 처리 (확정/진료완료/취소/미방문) — form POST 방식
- 진료항목 CRUD
- 의사별 / 전체 휴무 관리
- 관리자 메모
- 결제 상태 수동 변경
📁 파일 구조
/plugin/reserve/
reserve_lib.php # 핵심 라이브러리
/bbs/
reserve_form.php # 예약 폼 (날짜·시간·진료항목 선택)
reserve_ajax.php # AJAX: 시간 슬롯 반환
reserve_process.php # 예약 신청 처리
reserve_payment.php # 결제 방법 선택
reserve_payment_pg.php # PG 결제 요청 ★
reserve_payment_return.php # PG 결제 완료 처리
reserve_payment_bank.php # 무통장입금 처리
...
/adm/reserve_admin/
install_dental.php # DB 자동 설치 ★ 설치 후 삭제
reserve_list.php # 관리자 예약 목록
reserve_view.php # 관리자 예약 상세
reserve_action.php # 예약 처리 (form POST)
reserve_config.php # 기본설정 + 진료항목 + 휴무 관리
/adm/
admin.menu800.php # 관리자 메뉴
/skin/board/doctor/
list.skin.php # 의사 선택 프론트
🗄️ 데이터베이스 구조
g5_reserve_config (예약 설정)
| rc_key | 설명 | 기본값 |
|---|---|---|
checkin_unit |
예약 슬롯 단위(분) ← 관리자 변경 가능 | 30 |
work_start |
진료 시작 시간 | 09:00 |
work_end |
진료 종료 시간 | 18:00 |
lunch_start |
점심 시작 | 13:00 |
lunch_end |
점심 종료 | 14:00 |
| ... |
g5_facility (의사/진료실)
| 컬럼 | 설명 |
|---|---|
fa_id |
의사 ID |
fa_name |
의사명 |
fa_department |
진료과 |
| ... |
g5_dental_service (진료 항목)
| 컬럼 | 설명 |
|---|---|
ds_id |
항목 ID |
ds_name |
진료명 |
ds_category |
분류 (일반/교정/임플란트 등) |
| ... |
g5_doctor_service (의사-진료항목 매핑)
| 컬럼 | 설명 |
|---|---|
fa_id |
의사 ID |
ds_id |
진료항목 ID |
g5_reserve (예약 정보)
| 컬럼 | 설명 | 풋살장 차이 |
|---|---|---|
re_date |
예약일 | 동일 |
re_time |
예약시간 (HH:MM) | 동일 |
re_duration |
소요시간(분) | 2시간→30분 |
re_name |
예약자명 | 추가 |
| ... |
g5_doctor_off (의사별 휴무)
| 컬럼 | 설명 |
|---|---|
fa_id |
의사 ID (0=병원 전체) |
do_date |
휴무일 |
do_memo |
메모 |
🔧 설치 방법
1. 파일 업로드
위 파일 구조대로 그누보드 루트에 업로드
2. DB 설치
최고관리자 로그인 후 접속:
/adm/reserve_admin/install_dental.php
→ 설치 완료 후 install_dental.php 반드시 삭제
3. 관리자 메뉴 등록
/adm/admin.menu800.php 내용을 기존 메뉴 파일에 병합
4. 게시판 생성
관리자 > 게시판관리
- 게시판ID: doctor
- 스킨: /skin/board/doctor/ 적용
5. 영카트5 결제 설정
영카트 관리자 > 쇼핑몰설정 > 결제설정
- PG사 선택 및 API 키 입력
- 무통장입금 계좌: "은행명 계좌번호 예금주" (공백 구분)
예: "신한은행 110-123-456789 치과의원"
6. 기본 설정
관리자 > 치과 예약 관리 > 기본 설정
- 예약 단위(분) 설정 ← 핵심
- 진료 시간 설정
- 정기 휴무 요일, 공휴일 입력
7. 진료 항목 등록
관리자 > 치과 예약 관리 > 기본 설정 > 진료 항목 탭
- 진료명, 분류, 소요시간, 가격 입력
- 소요시간은 슬롯 단위와 무관하게 독립 설정 가능
💡 예약 흐름
사용자
↓ /board.php?bo_table=doctor → 의사 선택
↓ reserve_form.php?fa_id=N → 날짜/시간/진료항목 선택
↓ reserve_ajax.php → 시간 슬롯 AJAX 로드
↓ reserve_process.php (POST) → g5_reserve INSERT (pending)
↓ [무료 상담] → 즉시 confirmed + free → reserve_detail.php
↓ [유료 진료] → reserve_payment.php → 결제 방법 선택
↓ (무통장) → reserve_payment_bank.php → 입금 대기
↓ (PG) → reserve_payment_pg.php → PG 결제창
↓ reserve_payment_return.php → confirmed + paid
↓ reserve_my.php → 내 예약 목록
지원
- 이메일: info@365ok.co.kr
- 홈페이지: https://365ok.co.kr
이 개발자의 다른 프로젝트
펜션 예약 웹사이트
그누보드5 + 영카트5 기반 펜션 전용 예약 솔루션.
인트라넷(전자 결재)
# 🚀 그누보드5에 스마트한 업무 환경을 더하다 **전자결재, 일정 공유, 연차 관리까지!** 기존 홈페이지에 복사만 하세요. 진정한 인트라넷이 시작됩니다. [👉 온라인 데모 경험하기](https://intranet.365ok.co.kr) --- ## 🛠 강력한 핵심 기능 **귀사의 업무 효율을 극대화하는 3대 핵심 솔루션**
그누보드5 기반 컨텐츠몰
# 🛒 그누보드5 컨텐츠몰 (v1.0) 매뉴얼 그누보드5 기반으로 영카트5 기능을 참조하여 제작된 **프로그램 및 디지털 컨텐츠 거래 전용 솔루션**입니다. --- ## 📋 솔루션 개요 본 솔루션은 프로그램(스킨, 테마, 솔루션 등) 파일을 안전하게 거래할 수 있도록 설계되었으며, 특히 파일 검수 및 관리 기능에 최적화되어 있습니다.