Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
InsMobile – K3RS RSUD dr. Achmad Darwis 모바일 점검 시스템, 작업 환경·소화기 상태·비상대응 시설 양식
InsMobile — sistem inspeksi mobile K3RS RSUD dr. Achmad Darwis. Formulir lingkungan kerja, kondisi APAR, dan sarana tanggap darurat.
비즈니스TypeScript · CSSGitHub @miftahulmahfuzh온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Nama InsMobile (inspeksi mobile) adalah nama sistem ini dalam Rancangan Aktualisasi Arif Rahman Hakim — PD CPNS Kabupaten Lima Puluh Kota 2026. Website pemeriksaan K3RS untuk RSUD dr. Achmad Darwis. Tiga formulir diisi dari ponsel saat ronde, tersimpan di Neon Postgres, dan direkap di /admin dengan unduhan Excel. Menggantikan tiga Google Form yang sebelumnya dipakai. Pertanyaan, pilihan jawaban, dan status wajib-isi disalin apa adanya dari form asli.README 전문 보기 ↗
Nama InsMobile (inspeksi mobile) adalah nama sistem ini dalam Rancangan Aktualisasi Arif Rahman Hakim — PD CPNS Kabupaten Lima Puluh Kota 2026.
Website pemeriksaan K3RS untuk RSUD dr. Achmad Darwis. Tiga formulir
diisi dari ponsel saat ronde, tersimpan di Neon Postgres, dan direkap di
/admin dengan unduhan Excel.
Menggantikan tiga Google Form yang sebelumnya dipakai. Pertanyaan, pilihan jawaban, dan status wajib-isi disalin apa adanya dari form asli.
| Formulir | Rute | Jumlah pertanyaan |
|---|---|---|
| Inspeksi Lingkungan K3RS | /forms/inspeksi-lingkungan | 36 dalam 8 bagian |
| Pemeriksaan Kondisi APAR | /forms/kondisi-apar | 10 |
| Tanggap Darurat & Kebakaran | /forms/tanggap-darurat | 19 dalam 2 bagian |
Formulir diisi dari ponsel: satu ketukan per pertanyaan, hijau untuk kondisi aman dan merah untuk temuan. Progres tersimpan di perangkat, jadi ronde yang terputus bisa dilanjutkan.
npm install
cp .env.example .env.local # lalu isi nilainya
npm run dev
Buka http://localhost:3000.
| Nama | Wajib | Keterangan |
|---|---|---|
DATABASE_URL | ya | Connection string Neon Postgres. DATABASE_URL_UNPOOLED dipakai bila DATABASE_URL kosong. |
ADMIN_USERNAME | ya | Nama pengguna untuk /admin. |
ADMIN_PASSWORD | ya | Kata sandi untuk /admin. |
SESSION_SECRET | ya | Penanda tangan cookie sesi. Minimal 32 karakter acak. |
Membuat SESSION_SECRET:
node -e "console.log(require('crypto').randomBytes(36).toString('base64url'))"
Tabel dibuat otomatis saat permintaan pertama — tidak ada langkah migrasi terpisah. Semua jawaban disimpan di satu tabel:
submissions(id, form_slug, area, inspection_date, answers jsonb, findings, created_at)
answers memakai id pertanyaan asli dari Google Form (q<entry-id>), sehingga
kolom tetap cocok meskipun teks pertanyaan diubah di kemudian hari.
findings menghitung jawaban Tidak dan Rusak — angka inilah yang
ditampilkan di rekap admin.
/admin meminta login, lalu menampilkan:
Berkas .xlsx berisi tiga lembar, satu per formulir. Satu baris = satu
pemeriksaan, satu kolom = satu pertanyaan, ditambah kolom Jumlah temuan.
Jawaban Tidak/Rusak diwarnai merah. Rentang tanggal di halaman admin ikut
diterapkan pada unduhan.
Tangkapan layar di atas dibuat dengan data fiktif. Untuk membuatnya ulang,
jalankan npm run dev lalu:
npm run seed:demo # isi 9 pemeriksaan contoh
npm run seed:demo -- --clean # hapus kembali baris yang tadi diisi
Baris contoh masuk lewat POST /api/submit, jadi ikut divalidasi seperti
pengisian sungguhan. Id yang terbentuk dicatat di scripts/.demo-ids.json;
--clean hanya menghapus id itu, tidak pernah baris lain. Skrip menolak
mengisi tabel yang sudah berisi data kecuali diberi --force.
src/lib/forms.ts dibuat otomatis dari HTML Google Form asli. Untuk
menyesuaikan pertanyaan, sunting berkas itu langsung — strukturnya sudah
tidak bergantung pada Google Form lagi. Tambahkan pertanyaan baru dengan id
yang belum pernah dipakai; jangan mengubah id lama, karena id itulah yang
mengikat data lama ke kolomnya.
Deploy ke Vercel. Setel keempat variabel lingkungan di Project Settings → Environment Variables sebelum deploy pertama.