Update README.md
This commit is contained in:
committed by
GitHub
parent
d616d72bad
commit
53bb4f5e90
124
README.md
124
README.md
@@ -1,6 +1,6 @@
|
|||||||
# Portal Data Informatika (PODIF)
|
# 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
|
## Struktur Aplikasi
|
||||||
|
|
||||||
@@ -10,109 +10,29 @@ Sistem Informasi Data Mahasiswa Jurusan Informatika dengan autentikasi admin dan
|
|||||||
- **Fitur**: Halaman landing dengan modal login/register
|
- **Fitur**: Halaman landing dengan modal login/register
|
||||||
- **Layout**: Tanpa sidebar/navbar (clean auth interface)
|
- **Layout**: Tanpa sidebar/navbar (clean auth interface)
|
||||||
- **Komponen**:
|
- **Komponen**:
|
||||||
- Modal Login (Admin & Dosen)
|
- Modal Login (Admin & Ketua Jurusan)
|
||||||
- Modal Register (Dosen/Kajur)
|
|
||||||
|
|
||||||
### Dashboard
|
### Dashboard
|
||||||
|
|
||||||
- **URL**: `/dashboard`
|
- **URL**: `/dashboard`
|
||||||
- **Fitur**: Dashboard utama dengan sidebar dan navbar
|
- **Fitur**: Dashboard "Visualisasi Data Satu Layar"
|
||||||
- **Layout**: Menggunakan ClientLayout dengan sidebar/navbar
|
- **Visualisasi Data**:
|
||||||
- **Komponen**:
|
- Jumlah Mahasiswa
|
||||||
- Statistik mahasiswa
|
- Status Kuliah
|
||||||
- Grafik dan chart
|
- Jenis Pendaftaran
|
||||||
- Menu navigasi
|
- Rata-rata IPK
|
||||||
|
- Mahasiswa Lulus Tepat Waktu
|
||||||
|
- Masa Studi Lulusan
|
||||||
|
- Kelompok Keahlian
|
||||||
|
- Nama Beasiswa
|
||||||
|
- Tingkat Prestasi
|
||||||
|
- Asal Daerah
|
||||||
|
- Bimbingan Dosen
|
||||||
|
|
||||||
### Halaman Mahasiswa
|
### Kelola Data
|
||||||
|
- **URL** `/keloladata`
|
||||||
- **URL**: `/dashboard/mahasiswa/*`
|
- **Fitur**:
|
||||||
- **Fitur**: Halaman data mahasiswa
|
- Mahasiswa
|
||||||
- **Layout**: Menggunakan ClientLayout dengan sidebar/navbar
|
- Prestasi
|
||||||
|
- Beasiswa
|
||||||
## Autentikasi
|
- Dosen
|
||||||
|
|
||||||
### 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
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|||||||
Reference in New Issue
Block a user