Website ini digunakan untuk penilaian dan penjadwalan praktikum mata kuliah Fisika Laboratorium 1 dan 2 pada Prodi S1 Departemen Fisika ITS.
Praktikum dilaksanakan dengan rekrutmen asisten secara terbuka, serta mengelompokkan praktikan berjumlah sekitar 10 orang berdasarkan mata kuliahnya. Praktikum dilaksanakan seminggu sekali untuk tiap mata kuliah dengan urutan judul yang ditentukan di awal. Tiap mata kuliah yang dipraktikumkan memiliki modul yang bisa diakses oleh praktikan. Dimungkinkan asisten pada mata kuliah Fisika Laboratorium 1 juga menjadi praktikan pada mata kuliah Fisika Laboratorium 2. Karena perbedaan target angkatan pada tiap mata kuliah.
Dari hal tersebut, dibentuklah struktur database seperti berikut (belum termasuk skema user dan storage dari Supabase)
- Dengan Supabase,
userbisa sign-in melalui NRP dan password yang sama dengan NRP, lalu bisa diganti di lain waktu. userpunya rolepraktikandan atauaslabyang diinput secara manual oleh admin. Role bisa salah satu atau keduanya. Perpindahan role HARUS bisa dilakukan tanpa log-out terlebih dahulu.- Praktikan punya
kelompokpraktikum yang jadwalnya ditentukan aslab. - Kelompok praktikum punya nama yang merepresentasikan matkul (FL1-01 atau FL2-14).
- Praktikan bisa gabung beberapa kelompok sekaligus.
- Kelompok praktikum punya praktikum-praktikum yang harus dijalankan, dengan urutan praktikum yang berbeda tiap kelompoknya
- Praktikan punya
nilaiyang mendetail dengan tiap bagian praktikum atau lapresnya (pre-lab, in-lab, abstrak, pendahuluan, metodologi, dsb). - Aslab bisa mengisi nilai pada tiap praktikum yang dihandle.
- Modul bisa diakses pada web, yang menuju ke tautan Google Drive.
Buat project Supabase free tier dengan menggunakan region Singapura. Setelah selesai, masuk ke bagian SQL Editor dan Jalankan tiap file SQL yang ada pada folder /supabase secara berurutan.
Ekstrak zip yang ada pada folder /supabase/populate dan pindahkan ke tempat lain (selain di folder Proyek Next.js ini)
- Buat semua file csv yang dibutuhkan dengan struktur yang sama dengan yang ada pada folder
./datadi Google Sheet atau yang lain, lalu rename sesuai yang ada pada folder./data.- Satu kelompok praktikum hanya punya satu asla pada tiap judulnya
- Aslab harus punya nomor yang bisa dihubungi
- Jalankan
npm install, pastikan anda telah menginstall Node.js. - Buat file
.envyang berisiSUPABASE_URL = your_supabase_url SERVICE_ROLE = your_service_role_key - Jalankan
node 1-first.js - Jalankan
node 2-linker.js
Tools yang lain :
changeMinggu.jsuntuk mengganti minggu pada judul praktikum. Hindari penggantian beruntun, misal 8 diganti 9, lalu 9 diganti 10, semua akan jadi 10, padahal harusnya 8 dan 9 diganti menjadi 9 dan 10.getNilai.jsMendapatkan nilai praktikum dan mengunggahnya pada Google SheetlinkerResetNilaiAman.jsuntuk reset apabila ada kesalahan padachangeMinggu.js. Pastikan data csv sama dengan data yang sudah ada pada databasepwReset.jsUntuk melakukan reset password (NRP)resetLinker.jsuntuk menghapus semua baris yang ada pada tabel linker
- Login Page
/login. Bila telah masuk, redirect ke/ /praktikanadalah halaman untuk praktikan dengan tampilan default adalah praktikum (judul, kode dan nilai), aslab, aslab yang bisa dihubungi serta modul yang unified/aslabadalah halaman awal dari aslab dengan tampilan kelompok praktikum (kode), judul praktikum dan link menuju halaman penilaian/aslab/%kelompok/%praktikumadalah halaman penilaian dengan masing-masing mahasiswa (Nama, NRP dan foto mahasiswa)/jadwaluntuk melihat okupansi lab pada seluruh jadwal praktikum dalam satu minggu- Jika user masuk ke halaman yang tidak diizinkan (contoh: asisten masuk ke halaman kelompok yang tidak diasisteni) maka akan menampilkan pesan 404,
/404
Proyek ini telah mengkonfigurasi Supabase Auth untuk menggunakan kuki (cookies), yang menjadikan sesi login pengguna bisa digunakan pada seluruh aplikasi Next.js, baik itu Client Components, Server Components, Route Handlers, Server Actions dan Middleware. Bagaimana menggunakannya?
- Gandakan repositori ini dengan
git clone https://github.com/jhagas/web-praktikum-fislab. - Gunakan
cduntuk memindah terminal ke direktori aplikasi ini. - Jalankan
npm installuntuk menginstall dependensi. - Buat file
.env.localdan isikan nilai untukNEXT_PUBLIC_SUPABASE_URLdanNEXT_PUBLIC_SUPABASE_ANON_KEYdari Supabase project's API settings. - Jalankan
npm run devuntuk memulai server pengembangan lokal.
Repositori ini adalah proyek Next.js dengan App Routes, sehingga anda bisa menggunakan repository ini dan melakukan deploy di Vercel (rekomendasi) atau provider lain yang mendukung Next.js. Masukkan Environtment Variable yang sama dengan yang ada pada bagian Local Development poin 4.
