Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A demo for everything-wedding-related
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Wedly — Điều phối mọi đám cưới Ứng dụng tiếng Việt dành cho đội ngũ tổ chức tiệc cưới. Giao diện dùng chữ sans-serif, số tiền VND, ngày Việt Nam và thiết kế thích ứng với điện thoại. • Trang chủ: https://wedly-sepia.vercel.app • Không gian trải nghiệm: https://wedly-sepia.vercel.app/demo • GitHub: https://github.com/trbatrung/wedlyREADME 전문 보기 ↗
Ứng dụng tiếng Việt dành cho đội ngũ tổ chức tiệc cưới. Giao diện dùng chữ sans-serif, số tiền VND, ngày Việt Nam và thiết kế thích ứng với điện thoại.
Bản trải nghiệm hoạt động ngay, không cần tài khoản. Hồ sơ, công việc, chi phí, sơ đồ, thiệp mời và câu trả lời của khách được lưu bằng localStorage trên thiết bị hiện tại. Ảnh được lưu trong IndexedDB, không gửi lên máy chủ. Nguồn ảnh hết hạn sau 48 giờ và được dọn khi ứng dụng mở/đang chạy. Thiệp mời minh họa (/demo/thiep/…) chỉ mở được trên trình duyệt đã tạo thiệp; muốn gửi cho khách thật cần không gian đội ngũ đã kết nối Supabase. Đây là bản để đánh giá giao diện, không phải không gian đội ngũ đồng bộ.
Node.js >=20.9.
npm ci
npm run dev
npm run typecheck
npm test
npm run build
Chưa cấu hình các dịch vụ này thì đăng nhập hiển thị trạng thái đang chuẩn bị; bản trải nghiệm vẫn dùng được. Không có AI/đồng bộ tự động nếu chưa thiết lập.
supabase/schema.sql, sau đó supabase/invitations.sql (câu trả lời của khách và bucket ảnh thiệp) trong SQL Editor của dự án mới.https://wedly-sepia.vercel.app; cho phép redirect https://wedly-sepia.vercel.app/auth/callback (và http://localhost:3000/auth/callback khi phát triển). Cấu hình SMTP cho đăng nhập email trước khi triển khai cho đội ngũ thật..env.example). Không đưa giá trị bí mật vào Git:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY — chỉ trên máy chủANTHROPIC_API_KEY — chỉ trên máy chủANTHROPIC_MODEL — mặc định claude-haiku-5-5; thay bằng model đã được cấp quyền trên tài khoản nếu cầnCRON_SECRET — chuỗi ngẫu nhiên dài, chỉ trên máy chủwedly_site_url và wedly_cron_secret (giá trị trùng CRON_SECRET), sau đó chạy supabase/cleanup.sql.cron.job_run_details và gọi /api/cleanup với header Authorization hợp lệ để xác minh xóa file thực tế trước khi nhận ảnh thật.Ảnh được lưu trong bucket riêng tư. API xác minh đăng nhập, đội ngũ và thời hạn trước khi đọc ảnh. Sau đúng 48 giờ, ảnh không được đọc hay giữ lại mới. Worker thử xóa file vật lý mỗi 5 phút; xóa lỗi được thử lại. Metadata chỉ được đánh dấu đã xóa sau khi Storage API thành công. Thông tin có cấu trúc và trích đoạn ngắn đã xác nhận vẫn được giữ. Không xóa trực tiếp dòng storage.objects, vì thao tác đó không xóa file vật lý.
Không có job Vercel theo phút trong cấu hình: Vercel Hobby chỉ cho lịch hằng ngày. Job trong Supabase đáp ứng chu kỳ dọn 5 phút. Nếu chưa cấu hình job, việc xóa vật lý chưa tự động hoạt động.
Thiệp mời thật: khi đăng thiệp, Wedly tạo liên kết /thiep/<mã> khó đoán. Khách gửi xác nhận qua /api/rsvp; máy chủ kiểm tra thiệp đang mở, giới hạn số lần gửi và lưu vào bảng rsvps (không nằm trong dữ liệu đội ngũ có revision, nên khách gửi không gây xung đột khi đội ngũ đang sửa). Nếu có liên kết Apps Script, máy chủ gửi thêm một bản sang Google Sheet; liên kết này không bao giờ được gửi tới trình duyệt của khách. Trang thiệp và cổng khách hàng có noindex. Ảnh thiệp nằm trong bucket công khai invitation-images (ai có đường dẫn ảnh đều xem được, đúng mục đích gửi khách); chỉ thành viên đội ngũ tải lên/xóa qua /api/invite-images. Ảnh bị bỏ khỏi thiệp được xóa sau khi lưu thiệp.
Next.js 16 / React 19 / TypeScript / Tailwind / Supabase / Anthropic Messages API.
lib/domain.ts: phân biệt báo giá/thỏa thuận/thanh toán; xác nhận và kiểm tra trùng nguồn/giao dịch.lib/floorplan.ts: sinh bố trí theo kích thước thực, giới hạn vật thể trong phòng.lib/invitation.ts, lib/lunar.ts: dữ liệu công khai của thiệp, quy tắc RSVP, CSV, lịch, ngày âm lịch (múi giờ Việt Nam).components/invitation/: trang thiệp cho khách, trình soạn thiệp và danh sách khách mời.lib/search.ts, components/CommandPalette.tsx: tìm nhanh không dấu và menu Tạo mới.components/Workspace.tsx: không gian chung, lưu dữ liệu và điều hướng.app/api/: phiên đăng nhập, hồ sơ, ảnh, phân tích, trợ lý và dọn ảnh.supabase/: chính sách RLS, revision cho cập nhật đồng thời, lời mời đội ngũ, quota AI và lịch dọn.tests/: trạng thái tiền, xác nhận, nguồn trùng, hạn ảnh, hình học; thiệp mời (không lộ dữ liệu riêng, RSVP, CSV, âm lịch) và tìm nhanh.Mỗi tài khoản thuộc một đội ngũ. Cập nhật dùng revision: khi hai người cùng sửa, phiên cũ bị từ chối thay vì ghi đè âm thầm. Chủ đội ngũ tạo liên kết mời; liên kết mới thay thế liên kết cũ và hết hạn sau 7 ngày. Giới hạn ban đầu 100 lượt AI và 100 ảnh/ngày/đội ngũ. Cần kiểm tra lượng sử dụng thực tế trước khi bán gói.
Chưa có đồng bộ nhóm Zalo cá nhân, email, nhập danh sách khách từ file, lịch trình phút theo phút, phê duyệt từ cô dâu/chú rể, thanh toán thuê bao hay chứng nhận an toàn mặt bằng. Thiệp mời chưa có đường dẫn tùy chọn, mã QR để in, ảnh xem trước khi chia sẻ qua Zalo hay nhạc nền. Sơ đồ là công cụ bố trí đơn giản; khoảng trống quanh bàn và lối đi vẫn cần được đội ngũ kiểm tra tại địa điểm thực tế.