Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗온라인 공간 대관 신청 및 관리 시스템입니다.
🔧 전역적으로 deprecated 함수 완전 제거
sheets.ts 직접 import 제거getDatabase() 패턴 사용📝 로거 시스템 실제 적용
이 버전에서는 다음과 같은 주요 개선이 이루어졌습니다:
BlockedSlot 타입 별칭 추가로 타입 불일치 해결TIME_CONSTANTS 도입getDatabase() 패턴으로 일관성 확보logger 유틸리티 추가 (개발/프로덕션 환경 구분)lib/logger.ts: 구조화된 로깅 시스템lib/env-validation.ts: 환경 변수 검증 유틸리티components/apply/*: 신청 폼 섹션 컴포넌트들rental-app/
├── app/ # Next.js App Router
│ ├── space/ # 공간 목록 및 상세 페이지
│ ├── apply/ # 신청서 작성 페이지
│ ├── admin/ # 관리자 페이지
│ └── api/ # API 엔드포인트
├── components/ # React 컴포넌트
│ ├── RentalCalendar.tsx
│ ├── SpaceBooking.tsx
│ └── ...
├── lib/ # 유틸리티 및 비즈니스 로직
│ ├── space.ts # 공간 데이터 (Single Source of Truth)
│ ├── database.ts # 데이터베이스 추상화 레이어
│ ├── api-response.ts # API 응답 표준 형식
│ ├── schema.ts # Zod 스키마 정의
│ ├── config.ts # 설정 상수
│ ├── google.ts # Google API 클라이언트
│ ├── sheets.ts # Google Sheets 연동
│ ├── mockdb.ts # Mock 데이터베이스 (로컬 테스트용)
│ └── ...
└── public/ # 정적 파일
프로젝트 루트에 .env.local 파일을 생성하세요.
MOCK_MODE=true
ADMIN_PASSWORD=your_admin_password
APP_BASE_URL=http://localhost:3000
# Google API
GOOGLE_SERVICE_ACCOUNT_JSON={"type":"service_account",...}
GOOGLE_SHEET_ID=your_sheet_id
GOOGLE_DRIVE_FOLDER_ID=your_folder_id
# 관리자
ADMIN_PASSWORD=your_admin_password
# SMTP (이메일)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
SMTP_PASS=your_app_password
[email protected]
# 알림
[email protected]
APP_BASE_URL=https://your-domain.com
npm install
이 프로젝트에는 기본으로 .npmrc가 포함되어 있어 audit/fund 및 대부분의 warn 로그를 숨깁니다.
만약 경고를 다시 보고 싶다면(의존성 점검/트러블슈팅 시 권장) 아래 중 하나를 선택하세요.
npm_config_loglevel=warn npm install
.npmrc에서 loglevel=error 줄을 삭제/수정Windows에서 설치/삭제가 자주 꼬이면(EPERM, cleanup 실패 등)
- 프로젝트 경로를 짧게 이동 권장:
C:\work\rental-app- 실행 중인
node.exe/next dev/VSCode 터미널을 모두 종료 후 재시도
npm run dev
브라우저에서 http://localhost:3000을 열어 확인하세요.
npm run build
npm start
모든 공간 데이터는 lib/space.ts에서 관리됩니다. 공간을 추가/수정/삭제할 때는 이 파일만 수정하면 됩니다.
// lib/space.ts
export const ROOMS: SpaceRoom[] = [
{
id: "bookcafe",
floor: "4",
name: "북카페",
capacity: 20,
// ...
},
// ...
];
lib/database.ts는 Mock 모드와 실제 모드를 통합 관리합니다.
import { getDatabase } from "@/lib/database";
const db = getDatabase(); // 환경에 따라 자동 선택
const requests = await db.getAllRequests();
모든 API는 lib/api-response.ts의 표준 형식을 따릅니다.
import { success, error, HTTP_STATUS } from "@/lib/api-response";
// 성공
return NextResponse.json(success({ requestId: "..." }), { status: HTTP_STATUS.SUCCESS });
// 에러
return NextResponse.json(error("VALIDATION_ERROR", "입력값 오류"), { status: HTTP_STATUS.VALIDATION_ERROR });
lib/space.ts의 ROOMS 배열에 새 항목을 추가하세요.
export const ROOMS: SpaceRoom[] = [
// 기존 공간들...
{
id: "new_room", // 고유 ID (영문/숫자)
floor: "5", // 층 (4, 5, 6, 7)
name: "새로운 강의실", // 표시 이름
capacity: 15, // 수용 인원
durationLimitHours: 4, // 최대 이용 시간
feeKRW: 0, // 이용 금액
contactName: "관리자",
contactPhone: "02-0000-0000",
note: "공간 설명" // 선택사항
},
];
해당 공간의 속성을 직접 수정하세요.
해당 공간을 배열에서 제거하세요.
⚠️ 주의: 기존 예약 데이터와의 일관성을 확인하세요.
lib/config.ts에서 운영 시간을 설정할 수 있습니다.
export const OPERATING_RULES = {
weekday: { start: "10:00", end: "17:00" },
tuesdayNight: { start: "18:00", end: "20:00" },
saturday: { start: "10:00", end: "12:00" }
};
이메일 템플릿은 lib/mail.ts에서 수정할 수 있습니다.
/admin/loginADMIN_PASSWORD에 설정된 값Mock 모드는 .mockdb.json 파일에 데이터를 저장합니다. 이 파일을 삭제하지 마세요.
데이터 일관성 개선
lib/space.ts로 통합타입 안전성 강화
API 중복 제거
/api/public/availability 제거/api/availability로 통합데이터베이스 추상화
lib/database.ts 추가API 응답 표준화
lib/api-response.ts 추가문서화 개선
보안 강화
UI/UX 개선
성능 최적화
기능 확장
이 프로젝트는 내부 사용을 위한 것입니다.
버그 리포트나 기능 제안은 이슈로 등록해주세요.
개발: Manus AI
버전: 2.0 (개선판)
최종 업데이트: 2026-01-15
증상 예시:
...next-swc.win32-x64-msvc.node is not a valid Win32 application대부분 아래 중 하나입니다.
node -p "process.arch"ia32면 64-bit Node(x64)로 재설치가 필요합니다.설치가 중간에 끊겨 node_modules 바이너리가 손상
Node 버전이 너무 최신(v24 등)
권장 조치(공통):
# 1) node_modules 제거
rm -rf node_modules
# 2) npm 캐시 정리
npm cache clean --force
# 3) 재설치
# - package-lock.json이 있으면: npm ci
# - lockfile이 없으면: npm install
npm install
# 4) 실행
npm run dev
Windows PowerShell 기준:
Remove-Item -Recurse -Force node_modules
npm cache clean --force
npm install
npm run dev