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)
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user