4bbef323a1470ddf6c925b924544e531cd120ee9
Portal Data Informatika (PODIF)
Sistem Informasi Data Mahasiswa Jurusan Informatika dengan autentikasi admin dan dosen.
Struktur Aplikasi
Landing Page (Root)
- URL:
/ - Fitur: Halaman landing dengan modal login/register
- Layout: Tanpa sidebar/navbar (clean auth interface)
- Komponen:
- Modal Login (Admin & Dosen)
- Modal Register (Dosen/Kajur)
Dashboard
- URL:
/dashboard - Fitur: Dashboard utama dengan sidebar dan navbar
- Layout: Menggunakan ClientLayout dengan sidebar/navbar
- Komponen:
- Statistik mahasiswa
- Grafik dan chart
- Menu navigasi
Halaman Mahasiswa
- URL:
/dashboard/mahasiswa/* - Fitur: Halaman data mahasiswa
- Layout: Menggunakan ClientLayout dengan sidebar/navbar
Autentikasi
Role User
-
Admin
- Login dengan username dan password
- Akses penuh ke semua fitur
-
Dosen
- Login dengan NIP dan password
- Akses terbatas sesuai role
-
Ketua Jurusan (Kajur)
- Login dengan NIP dan password
- Akses khusus untuk kajur
API Endpoints
POST /api/auth/login- Login admin/dosenPOST /api/auth/register- Register dosen/kajurPOST /api/auth/logout- LogoutGET /api/auth/check- Cek status autentikasi
Setup
1. Install Dependencies
npm install
2. Setup Environment Variables
Buat file .env.local:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
JWT_SECRET=your_jwt_secret
3. Setup Database
Jalankan script setup database:
node setup_database.js
4. Run Development Server
npm run dev
Database Schema
Tabel user_app
CREATE TABLE user_app (
id_user SERIAL PRIMARY KEY,
username VARCHAR(50), -- hanya digunakan oleh admin
nip VARCHAR(20), -- hanya digunakan oleh dosen & kajur
password TEXT NOT NULL,
role_user role_enum NOT NULL, -- ENUM: 'admin', 'dosen', 'kajur'
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Middleware
Middleware mengatur:
- Redirect user yang sudah login dari
/ke/dashboard - Protect route
/dashboard/*(harus login) - Clear invalid token dan redirect ke home
Struktur File
Description
Languages
TypeScript
98.9%
CSS
0.6%
JavaScript
0.4%