그누보드7 예약 모듈 - glitter-reservation
코어 수정 없이 붙여 사용하는 그누보드7 예약 모듈로, 신청·인증·조회·취소·관리까지 예약 흐름 전체를 모듈 단위로 제공합니다.
개요
glitter-reservation은 그누보드7에서 동작하는 번들형 예약 모듈입니다.
예약 신청, 조회, 취소, 이메일 인증까지 이어지는 전체 예약 흐름을 제공하며, 코어 수정 없이 어떤 그누보드7 프로젝트에도 독립적으로 붙여 사용할 수 있도록 설계되었습니다
프로젝트 소개
이 프로젝트는 단순한 예약 인터페이스가 아닙니다.
그누보드7의 modules / plugins / templates 구조 위에서 동작하는 모듈형 예약 시스템으로, 사용자 영역부터 관리자 관리까지 이어지는 전체 운영 흐름을 지원합니다.
또한 API 기반 백엔드 구조와 JSON Layout 기반 UI 렌더링을 통해 화면 구조와 동작을 유연하게 제어할 수 있습니다.
주요 기능
Modular Architecture
예약 기능은 코어와 분리된 모듈로 구성되어 있습니다
modules/_bundled 경로에 복사하는 방식으로 G7 다른 프로젝트에서도 재사용할 수 있으며, 커스터마이징과 배포 경계를 명확하게 유지할 수 있습니다.
JSON Layout-Based UI
UI는 JSON 레이아웃 정의를 기반으로 렌더링됩니다
template routing, layout resolve, API 기반 데이터 연동, action handler를 통해 뷰 템플릿에 강하게 의존하지 않고 유연한 페이지 구성이 가능합니다.
Reservation Flow
- 예약 신청
- 이메일 인증
- 예약 생성
- 예약 조회
- 예약 취소
전체 예약 흐름은 하나의 상태 기반 프로세스로 구성되어 있습니다.
Email Verification System
토큰 기반 이메일 인증과 세션 기반 상태 관리를 포함합니다.
인증된 사용자만 예약을 생성할 수 있도록 설계되어 있습니다.
Admin System
사용자 영역과 관리자 영역이 분리되어 있습니다.
관리자에서는 예약 목록 조회, 상태 변경, 상세 확인 등 운영에 필요한 기능을 제공합니다..
기술 스택
PHP 8.2+, Laravel 12.x, MySQL 8, Laravel Sanctum, JSON Layout Engine
참고 사항
- public 및 admin 페이지 노출은 template routes.json에서 설정해야 합니다
- 초기 예약 서비스 및 스케줄 데이터는 호스트에서 구성해야 합니다
- notification 기능은 외부 플러그인으로 확장 가능합니다
- 실제 실행해야 하는 마이그레이션은
database/migrations에 포함된 항목입니다 database/migrations_excluded경로는 실행 대상이 아닙니다
대상 사용자
다음과 같은 사용자에게 적합합니다:
- 그누보드7 기반에서 재사용 가능한 모듈 구조를 구성하고 싶은 개발자
- 실제 운영 가능한 예약 흐름이 필요한 개발자 및 운영자.
- API 기반 백엔드와 동적 UI 렌더링 구조에 관심 있는 개발자.
- 모듈 단위로 확장 가능한 CMS 구조를 설계하고 싶은 사용자.
개발 방향
- 예약 UX 개선
- 이메일 인증 기반 예약 흐름 안정화.
- 템플릿 및 렌더링 구조 정리.
- 세션, 인증, 보안 처리 강화.
- 모듈 확장성과 유지보수성 개선.
설계 철학
이 프로젝트는 단순한 예약 페이지가 아니라
CMS 구조 안에서 독립적으로 동작하는 예약 시스템 모듈을 만드는 것을 목표로 합니다.
상태
안정적인 배포가 가능한 상태입니다..
현재 모듈은 설치 및 재사용이 가능하며, GitHub Release를 통해 배포되고 있습니다.
설치 방법
1. GitHub 저장소에서 설치 (권장)
관리자 → 모듈 관리 → 수동 설치 → GitHub
아래의 저장소 URL을 입력합니다.
https://github.com/glitter-node/glitter-reservation
설치 완료 후 생성된 반짝이 예약 모듈을 활성화하면
좌측 사이드바에 반짝이 예약 관리 메뉴가 생성됩니다.
2. ZIP 파일로 설치
위의 모듈 ZIP 파일을 다운로드한 후, 관리자 → 모듈 관리 → 수동 설치 → 파일 업로드를 통해 설치할 수도 있습니다.
다만 GitHub 저장소를 통한 설치 및 업데이트를 권장합니다.
3. 설치 후 생성된 페이지의 로드 에러 발생 시
관리자 → 환경설정 → 고급 → 캐시 모두 삭제
라이선스
MIT License
이 개발자의 다른 프로젝트
수정 이력 (7)
- module.json vendor 값을 정정
- 예약 슬롯 동시성 처리 및 중복 예약 방지
### v0.2.0 (Bundled Release) - Gnuboard7 bundled module 구조로 전환 - modules/_bundled 경로 기준 설치 방식 확정 - GitHub Release 기반 배포 구조 확립 - Windows 환경에서 압축 해제 문제를 고려한 짧은 경로 zip 제공 ### 구조 정리 - 모듈 구조를 _bundled 기준으로 정리 - core 수정 없이 attach 가능한 형태로 정렬 - 모듈 단위 복사 설치 방식 검증 완료 ### 기능 및 안정성 - 예약 흐름 (신청, 인증, 생성, 조회, 취소) 안정화 - 이메일 인증 기반 예약 처리 흐름 정리 - 관리자 예약 관리 기능 정합성 개선 ### 정리 및 제거 - academy-specific 필드 (student_grade) 제거 - 미사용 코드 (listener, request, enum) 정리 - 비이식성 migration 경로 분리 ### 배포 및 라이선스 - MIT License 정식 적용 - 배포용 zip 구성 확정 - Release 기준 설치 방식 문서화 ### 비고 - 본 버전부터 standalone 모듈로 재사용 가능 - Release zip 사용이 권장 설치 방식
- 이메일 인증 및 예약 세션 처리
- 상태 전이 단순화 - 모듈 응답 포맷 통일 - 흐름 예측성 향상 - 프론트 레이어 단순화
JSON 파일 편집 - 페이지 레이아웃 수정
## Consultation Studio 템플릿 수정 사항 ### 수정 내용 - 자산 경로 오류 수정 상대경로로 인해 CSS/JS가 HTML로 응답되던 문제 해결 - 런타임 초기화 실패 수정 `index.js` 미로딩으로 인한 `ConsultationStudio` 전역 미생성 문제 해결 - 템플릿 식별자 불일치 수정 `consultation_studio` / `consultation-studio` 경로 불일치로 인한 lang 404 해결 ### 영향 - 예약 페이지 정상 로드 - JS/CSS 정상 적용 - 컴포넌트 번들 정상 동작 ### 비고 - 모듈/로직 변경 없음 - 템플릿 자산 경로 및 식별자 정합성만 수정