Bops
A team of AI bots that runs your business ops: inbox, pipeline, invoices, reports. Each one has its own computer, email and phone number, and remembers everything.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
正在加载完整 README。 以下为已保存的摘录。
서면 YBM 어학원 직원용 사물함 대여 관리 웹앱. 정적 HTML + Supabase (DB · 인증 · 실시간 동기화) 구성이며 별도 빌드가 필요 없습니다. • 각 층 사물함 재고를 한눈에 파악 • 어느 칸을 누가 언제부터 대여 중인지 확인 • 보증금 수령/환급 추적 • 갱신 마감(매월 마지막 주 금요일) 관리 + 미확인 목록 대시보드 • 여러 PC에서 같은 데이터 공유(실시간 반영) + 직원 로그인 1-1. 프로젝트 준비 이미 보유한 Supabase 프로젝트의 Project URL과 anon public key를 Settings → API 에서 확인합니다. (anon key는 클라이언트 노출이 전제된 공개 키이며, 실제 보호는 아래 RLS 정책으로 이루어집니다.) 1-2. 스키마 & 시드 실행 Supabase 대시보드 SQL Editor에서 순서대로 실행합니다. 1. supabase/schema.sql — 테이블 · 인덱스 · RLS 정책 생성 2. supabase/seed.sql — 사물함 127칸(1·2·3·7층) 데이터 입력查看完整 README ↗
서면 YBM 어학원 직원용 사물함 대여 관리 웹앱. 정적 HTML + Supabase (DB · 인증 · 실시간 동기화) 구성이며 별도 빌드가 필요 없습니다.
이미 보유한 Supabase 프로젝트의 Project URL과 anon public key를
Settings → API 에서 확인합니다. (anon key는 클라이언트 노출이 전제된 공개 키이며,
실제 보호는 아래 RLS 정책으로 이루어집니다.)
Supabase 대시보드 SQL Editor에서 순서대로 실행합니다.
supabase/schema.sql — 테이블 · 인덱스 · RLS 정책 생성supabase/seed.sql — 사물함 185칸(1·2·3·4·7·8층) 데이터 입력시드를 다시 실행해도 중복되지 않도록
on conflict (floor, number) do nothing처리되어 있습니다.
Database → Replication (또는 Realtime) 에서 rentals 테이블의 실시간 전송을 켭니다.
스키마 실행 시 alter publication supabase_realtime add table rentals; 가 포함되어 있어
대부분 자동 적용됩니다.
로그인은 Supabase Auth(이메일/비밀번호) 입니다.
Authentication → Users → Add user 에서 직원 계정을 만듭니다.
(이메일 확인 절차가 부담되면 Add user 시 Auto Confirm User 를 체크하세요.)
회원가입 화면은 제공하지 않습니다 — 계정은 관리자가 대시보드에서만 생성합니다.
config.js 파일을 열어 발급받은 값으로 채웁니다.
window.SUPABASE_URL = "https://xxxxxxxx.supabase.co";
window.SUPABASE_ANON_KEY = "eyJhbGciOi..."; // anon public key
값을 채우지 않으면 앱은 “설정이 필요합니다” 안내 화면을 표시합니다.
빌드가 없으므로 정적 서버로 바로 엽니다.
python3 -m http.server 8000
# 브라우저에서 http://localhost:8000
(file:// 직접 열기는 일부 브라우저에서 모듈/네트워크 제약이 있어 권장하지 않습니다.)
vercel.json이 설정을 담당.프로젝트이름.vercel.app 무료 주소가 생성됩니다.CLI로도 가능: npm i -g vercel && vercel
. (루트). 또는 폴더 드래그-드롭 배포.Authentication → URL Configuration 에서 Site URL 에 배포 주소
(https://....vercel.app)를 추가합니다.
| 상태 | 의미 | 색 |
|---|---|---|
| 빈 공간 | 대여 가능 | 초록 #3ba776 |
| 마감 전 | 사용 중 (마감일 이전) | 파랑 #3b6fd4 |
| 마감됨 | 마감일 경과 · 연락 필요 | 빨강 #d7503a |
반.종강일 + 10일 vs 오늘).입금/환급 · 이름 · 생년월일 · 반 · 날짜 · 시간
형식으로 표시. 날짜·시간은 한국시간(KST) 자동 기록.{ "name": "홍길동" } 을 넣어주세요. (없어도 이메일 앞부분으로 표시)app_settings.password_guide 에 저장)초기 비밀번호는 0000입니다. 비밀번호 변경 방법: … → 실제 변경 방법으로 수정하세요.index.html 첫 화면(랜딩): 직원 로그인 / 학생 빈자리 보기 선택
admin.html 직원용 앱 (로그인 + 사물함 벽 + 반 관리/대시보드/공지)
student.html 학생용 빈자리 보기 (모바일 반응형, 로그인 없음, 개인정보 비공개)
styles.css 디자인 시스템 (admin.html 용)
app.js 로직: 인증 · 렌더링 · 상태계산 · DB CRUD · 반 관리 · 이동 · Realtime
config.js Supabase URL / anon key (직접 입력)
supabase/
schema.sql 테이블 · locker_status 뷰 · 인덱스 · RLS
seed.sql 반 13개 + 사물함 127칸 시드
vercel.json 정적 배포 설정
https://...vercel.app/ → 첫 화면(자동 로그인 안 뜸)
admin.html (로그인 후 관리 화면)student.html (학생용)/) 또는 학생 화면(/student.html) 중 무엇으로 만들어도 됩니다.혹시 모를 상황(실수 삭제·DB 장애 등) 대비로, Supabase 데이터를 구글 시트에 주기적으로 스냅샷합니다.
서버 없이 Google Apps Script(시트 내장)로 동작하며 무료입니다. 스크립트: integrations/google-sheets-backup.gs
integrations/google-sheets-backup.gs 내용을 붙여넣고 저장SUPABASE_URL = https://....supabase.coSUPABASE_SERVICE_KEY = Supabase → Settings → API → service_role 'secret' 키config.js에 절대 넣지 마세요.backupToSheet 실행 ▶ → 권한 승인(처음 1회)backupToSheet, 시간 기반 → 1시간마다(또는 매일)실시간 미러링(변경 즉시 기록)이 필요하면, Supabase Database Webhooks → Apps Script Web App 방식으로 확장할 수 있습니다. 백업 목적이면 위 주기 스냅샷으로 충분합니다.
student.html)학생이 휴대폰으로 빈 사물함을 확인하는 공개 페이지입니다.
locker_status 뷰가 점유 여부만 노출 → anon 권한으로 안전하게 조회)以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗