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.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
서면 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층) 데이터 입력Read the full 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 권한으로 안전하게 조회)This is the beginning of the README. Read the rest at the original. Read the full README ↗