Randa Firman Putra d0b6e6a890 ayo bisa
2025-09-16 14:34:06 +07:00
2025-06-18 22:03:32 +07:00
2025-09-16 14:22:37 +07:00
2025-09-16 14:34:06 +07:00
2025-07-14 15:07:33 +07:00
2025-07-15 15:18:38 +07:00
2025-06-18 22:03:32 +07:00
2025-04-15 10:19:29 +07:00
2025-06-18 22:03:32 +07:00
2025-06-18 22:03:32 +07:00
2025-06-20 00:45:19 +07:00
2025-07-14 15:07:33 +07:00
2025-06-20 00:45:19 +07:00
2025-08-25 22:38:49 +07:00
2025-07-14 15:07:33 +07:00
2025-06-18 22:03:32 +07:00
2025-09-06 20:55:57 +07:00
2025-09-06 20:55:57 +07:00
2025-06-18 22:03:32 +07:00
2025-06-28 06:15:50 +07:00
2025-06-18 22:03:32 +07:00

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

  1. Admin

    • Login dengan username dan password
    • Akses penuh ke semua fitur
  2. Dosen

    • Login dengan NIP dan password
    • Akses terbatas sesuai role
  3. Ketua Jurusan (Kajur)

    • Login dengan NIP dan password
    • Akses khusus untuk kajur

API Endpoints

  • POST /api/auth/login - Login admin/dosen
  • POST /api/auth/register - Register dosen/kajur
  • POST /api/auth/logout - Logout
  • GET /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
No description provided
Readme 560 KiB
Languages
TypeScript 98.9%
CSS 0.6%
JavaScript 0.4%