Update README.md

This commit is contained in:
Randa Firman Putra
2025-09-27 15:30:45 +07:00
committed by GitHub
parent d616d72bad
commit 53bb4f5e90

124
README.md
View File

@@ -1,6 +1,6 @@
# Portal Data Informatika (PODIF)
Sistem Informasi Data Mahasiswa Jurusan Informatika dengan autentikasi admin dan dosen.
Sistem Informasi Data Mahasiswa Jurusan Informatika dengan autentikasi admin dan ketua jurusan.
## Struktur Aplikasi
@@ -10,109 +10,29 @@ Sistem Informasi Data Mahasiswa Jurusan Informatika dengan autentikasi admin dan
- **Fitur**: Halaman landing dengan modal login/register
- **Layout**: Tanpa sidebar/navbar (clean auth interface)
- **Komponen**:
- Modal Login (Admin & Dosen)
- Modal Register (Dosen/Kajur)
- Modal Login (Admin & Ketua Jurusan)
### Dashboard
- **URL**: `/dashboard`
- **Fitur**: Dashboard utama dengan sidebar dan navbar
- **Layout**: Menggunakan ClientLayout dengan sidebar/navbar
- **Komponen**:
- Statistik mahasiswa
- Grafik dan chart
- Menu navigasi
- **Fitur**: Dashboard "Visualisasi Data Satu Layar"
- **Visualisasi Data**:
- Jumlah Mahasiswa
- Status Kuliah
- Jenis Pendaftaran
- Rata-rata IPK
- Mahasiswa Lulus Tepat Waktu
- Masa Studi Lulusan
- Kelompok Keahlian
- Nama Beasiswa
- Tingkat Prestasi
- Asal Daerah
- Bimbingan Dosen
### 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
```bash
npm install
```
### 2. Setup Environment Variables
Buat file `.env.local`:
```env
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:
```bash
node setup_database.js
```
### 4. Run Development Server
```bash
npm run dev
```
## Database Schema
### Tabel user_app
```sql
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
```
```
### Kelola Data
- **URL** `/keloladata`
- **Fitur**:
- Mahasiswa
- Prestasi
- Beasiswa
- Dosen