Ruang kampus, dibuat lebih mudah dipakai
Sthana Kampus adalah aplikasi web untuk reservasi ruang dan pelaporan fasilitas kampus. Satu alur yang dapat diikuti pengguna, petugas, dan admin, dibuat untuk Project PPK 2026.
Lihat Sthana bergerak
Demo produk: pinjam ruangan tanpa drama antre
Satu reservasi dari awal sampai akhir: cari ruangan, pilih slot, kirim, lalu petugas menyetujui.
One-take motion reel
Logo, Sthani, dan antarmuka Sthana dalam satu gerakan tanpa putus.
Satu nama untuk tempat yang dipakai bersama
Sthāna (स्थान) berasal dari bahasa Sanskerta dan dapat berarti tempat berdiri atau tinggal, kediaman, posisi, maupun tempat. Makna “tempat” itu menjadi dasar nama Sthana Kampus.
Kampus memiliki banyak ruang dengan jadwal, kapasitas, kondisi, dan penanggung jawab berbeda. Sthana dirancang agar semua pihak melihat sumber informasi yang sama—dari pencarian ruang sampai laporan selesai ditangani.
Rujukan leksikon SanskertaPink yang terasa hidup, bukan sekadar dekorasi
Pink dipilih agar Sthana mudah dikenali di antara produk kampus yang cenderung formal. Berry yang gelap menjaga teks tetap tegas, sementara blush memberi ruang bernapas pada antarmuka yang padat data.
#52082B#D00064#FFE5F2#1C172FKenalan samaa Sthani (●'◡'●)
Sthani adalah maskot Sthana Kampus. Ekspresinya membantu menjelaskan keadaan dan tindakan di dalam aplikasi
Ekspresi Sthani
- Senang
- Bingung
- Kesal
- Ngantuk
- Sedih
- Keren
- Terkejut
- Sayang
Di dalam aplikasi
Konfirmasi keluar
Keamanan akun
Satu sistem, tiga sudut kerja
Setiap peran memperoleh informasi dan tindakan yang memang dibutuhkan—tanpa mencampurkan antrean atau kewenangan.
Pengguna
Mencari fasilitas, melihat slot, mengajukan reservasi, dan melaporkan kendala.
Petugas
Memeriksa antrean reservasi dan menindaklanjuti laporan fasilitas.
Admin
Menjaga data fasilitas, akun, akses, dan rekap aktivitas tetap tertata.
Dokumentasi proyek
Semua dokumen- BrowserHalaman & portal
- Next.jsHalaman & auth proxy
- Better AuthIdentitas & sesi
- Convex functionValidasi & aturan
- Convex DBData, indeks, foto
- Semua fungsi Convex punya validator argumen dan hasil.
- Hanya reservasi disetujui yang memblokir slot.
- Waktu 07.00–20.00 WIB, satu hari, kelipatan 30 menit.
- Data tidak dihapus destruktif; aksi penting masuk auditEvents.
profiles
Akun, peran, status
- · authUserId
- · role
- · status
- · mustChangePassword
facilities
Ruang & statusnya
- · name
- · type
- · capacity
- · status
→ profiles
reservations
Jadwal pemakaian
- · startAt
- · endAt
- · purpose
- · status
→ profiles→ facilities
reports
Kendala fasilitas
- · category
- · photoStorageId
- · status
- · resolutionNote
→ profiles→ facilities
auditEvents
Jejak setiap aksi
- · entityType
- · action
- · fromStatus
- · toStatus
→ profiles
Status Reservasi
Status Laporan
58
Unit test
15 file Vitest
37
Test browser
Playwright, 5 file
17
User story
Semua punya video
pnpm check sebelum setiap rilis
- Format
- Lint
- Typecheck
- Unit test
- Peers
- React Doctor
- Build
Video tiap user story
US-01 · Pengunjung membuka slot Aula; slot terisi tanpa nama/tujuan pemohon
Video direkam di demo statis lokal. Status “FIXED” di sheet QA tidak berarti sudah lulus retest atau tersedia di production.
| Aksi | Pengguna | Petugas | Admin |
|---|---|---|---|
| Lihat fasilitas & slot | Boleh | Boleh | Boleh |
| Ajukan & batalkan reservasi sendiri | Boleh | Tidak | Tidak |
| Buat laporan + foto | Boleh | Tidak | Tidak |
| Setujui / tolak reservasi | Tidak | Boleh | Boleh |
| Tangani laporan | Tidak | Boleh | Boleh |
| Kelola fasilitas | Tidak | Tidak | Boleh |
| Verifikasi & kelola akun | Tidak | Tidak | Boleh |
| Rekap & ekspor CSV | Tidak | Tidak | Boleh |
Cookie sesi HttpOnly
Token sesi tidak bisa dibaca skrip halaman.
Gerbang akun pending
Pendaftaran baru tidak mendapat sesi sampai disetujui admin.
Peran dicek di server
Setiap fungsi Convex memeriksa peran; guard halaman bukan satu-satunya pengaman.
Gambaran besar · 1/14
Tiga peran, satu sumber data
Pengguna mengajukan, petugas memutuskan dan menindaklanjuti, admin mengelola data dan akun. Semua membaca data yang sama di Convex, jadi perubahan satu peran langsung terlihat di layar peran lain.
- Pengunjung tanpa akun hanya bisa melihat katalog dan slot yang terisi, tanpa nama pemohon atau tujuan.
- Admin juga bisa melakukan semua tindakan petugas.
- Setiap tindakan penting dicatat di tabel `auditEvents`.
- Panduan pengguna
Cara memakai Sthana sebagai pengunjung, pengguna, petugas, dan admin.
- Data dan API
Model data, status, akses fungsi, dan aturan reservasi.
- Keputusan arsitektur
Alasan pemilihan backend, autentikasi, dan halaman publik.
- Panduan operasional
Setup, rilis, pemeriksaan layanan, insiden, dan rollback.
- Catatan perubahan
Perubahan berdasarkan riwayat Git, terpisah dari status deployment.
- Studi kasus engineering
Masalah, keputusan desain, implementasi, dan hasil yang terukur.
Tim di balik Sthana
Empat fokus kerja, satu repository utama. Setiap anggota memegang area yang jelas dan tetap saling mereview hasil implementasi.

Muchammad Yuda Tri Ananda
Project ManagerTech Team & Backend Lead
Arsitektur, kontrak, API/service, autentikasi, integrasi, quality gate, dan deployment.

Muhammad Hafidh Zufar Dewantara
QA & Testing Lead
Skenario pengujian, validasi user story, regression testing, dan pencatatan temuan.

Muhammad Zaidaan Ardiyansyah
Brand & UI Lead
Identitas visual, shared UI, public experience, auth UI, dan tampilan responsif.

Nayla Husna
Database Lead
Schema Convex, relasi dan index data, integritas data, seed, dan dokumentasi database.
Dibangun terbuka, masih terus dikembangkan
Sthana merupakan proyek akademik. Alur utama, autentikasi, data, dan portal peran sedang dikembangkan bertahap berdasarkan 17 user story Project PPK.
