safeeyes
Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Frontend Next.js (App Router, TypeScript, Tailwind v4) untuk SiagaRS: membantu keluarga pasien memutuskan rumah sakit yang tepat dengan data fasilitas yang transparan — setiap angka punya sumber, umur, dan tingkat kepastian. Sub-tema: Data-Driven Decision Support.
Prototipe. Data pilot terbatas, bukan layanan gawat darurat — darurat: 112. Versi 0.4.0 (Decision Core), dirilis berpasangan dengan backend dengan tag
vX.Y.Zyang sama. Tim MalasNgoding.
Sumber acuan: folder new/ — PRD FE,
aturan kerja, roadmap & tiket,
kontrak API v1. Dokumen lama ada di
docs/archive/ dan tidak lagi diikuti.
npm install
cp .env.example .env.local # opsional; bawaan = backend production
npm run dev # http://localhost:3000
Buka lewat http://localhost:3000 persis: login dan mutasi operator hanya
diterima dari origin yang terdaftar di backend (PUBLIC_ORIGIN).
Perintah lain: npm run lint, npm run typecheck, npm run test, npm run build.
Keempatnya dijalankan CI (.github/workflows/ci.yml) di setiap push & PR.
Catatan versi: proyek memakai Next.js 16.4.3 dengan
cacheComponentsdanpartialPrefetchingaktif. Bacanode_modules/next/dist/docs/(lihatAGENTS.md) sebelum mengubah pola data/caching.
Pekerjaan berjalan di branch develop. Vercel (Preview dan Production)
memakai backend production https://siagars-backend.vercel.app (publik);
lokal bisa memilih production atau staging lewat .env.local. Kontrak yang
diikuti: API 0.4.0 (new/03_KONTRAK_API_v1.md), yang sudah live di
production: GET /recommendations, GET /hospitals/markers, data_quality di
DTO Hospital, hospital_name di daftar rujukan operator, dan error.details.
next.config.ts me-rewrite /api/v1/* ke API_BASE_URL (server-only;
bawaan https://siagars-backend.vercel.app). Browser tetap same-origin
sehingga cookie sesi operator (Path=/api/v1) bekerja dan backend tidak perlu
CORS.API_BASE_URL (lokal: .env.local,
lalu restart dev server; Vercel: env per lingkungan, lalu redeploy). Halaman
/status menampilkan backend yang dipakai: Production atau Staging.VERCEL_AUTOMATION_BYPASS_SECRET. proxy.ts lalu me-rewrite /api/v1 ke
staging dengan header bypass (server-only). Untuk production header ini
tidak pernah dipasang, walaupun secret masih terisi.PUBLIC_ORIGIN
backend (https://frontend-siagars.vercel.app; per 25 Okt 2026 juga
http://localhost:3000). Origin lain → 403 invalid_origin.real (sama dengan bawaan API). Sejak API 0.2.1,
RS nyata membawa data fasilitas/BPJS contoh (bukan fakta):
facility_summary.data_origin/bpjs_data_origin = "simulation". UI selalu
memberi label "Simulasi" pada nilai itu dan menampilkan pemberitahuan data
simulasi (hasSimulatedData di lib/hospitals/summary.ts)./status (GET /health, GET /ready).Project Vercel: artax-sora/frontend-siagars (https://frontend-siagars.vercel.app),
terhubung ke repo GitHub. Push memicu deploy otomatis sesuai Production Branch
di pengaturan Vercel; deploy manual ke Production: vercel deploy --prod
(.vercelignore mencegah .env.local ikut terunggah). Login operator di domain
Vercel baru berfungsi setelah tim backend menambahkan origin domain itu ke
PUBLIC_ORIGIN backend.
SR-DEMO-001 (sesuai panduan integrasi).| Rute | Isi |
|---|---|
/ | Beranda: CTA "Bantu saya pilih RS", cara kerja skor, cari nama, cakupan data, cara membaca informasi |
/pilih-rs | Asisten 3 langkah (layanan → lokasi → preferensi) → rekomendasi ber-skor 0–100 dengan rincian "Kenapa skor ini?", daftar yang belum diketahui, banner 112. Semua langkah di URL (?step=2&services=nicu…) |
/rumah-sakit | Pencarian + filter + daftar & peta; peta memuat semua RS di area tampilan (/hospitals/markers); semua filter tersimpan di URL |
/rumah-sakit/[id] | Detail: kualitas data, BPJS, tempat tidur, layanan; sumber & waktu per informasi |
/lacak-rujukan | Lookup kode via POST body (tidak di URL/storage) + timeline demo |
/cek-bpjs | Simulasi cek kepesertaan BPJS (NIK, nama, tgl lahir via POST body; tidak disimpan di peramban, server hanya menyimpan riwayat tersamar 30 hari) |
/bandingkan | Perbandingan 2–3 RS berbasis keputusan: penanda "Unggul" per baris + ringkasan (lib/hospitals/compare-winner.ts) |
/tentang-data | Cakupan pilot, asal data, arti waktu, batas kesegaran, metodologi skor rekomendasi & kualitas data, jarak |
/status | Status server API & database (/health, /ready) |
/operator/login, /operator/rujukan, /operator/layanan | Panel operator minimum |
/bandingkan?ids=a,b[,c] membandingkan 2–3 RS; tiap ID boleh UUID atau external_id (pilih lewat kotak "Bandingkan" di kartu hasil).
This is the beginning of the README. Read the rest at the original. Read the full README ↗