DockerComposeOrchestration/DATABASE_SETUP.md

3.9 KiB

📊 Setup Database MySQL untuk SIPINTAR

🚀 Langkah Setup Database yang Sudah Berhasil

Yang Sudah Selesai:

  1. Database Schema: Tabel-tabel sudah berhasil dibuat di MySQL
  2. Data Demo: Database sudah terisi dengan data demo
  3. Konfigurasi: File .env sudah dikonfigurasi dengan benar

🎯 Cara Setup Database dari Awal

  1. Download dan Install XAMPP

  2. Start Services

    • Buka XAMPP Control Panel
    • Start Apache dan MySQL
  3. Buat Database via phpMyAdmin

    • Buka http://localhost/phpmyadmin
    • Klik "New" di sidebar kiri
    • Database name: sipintar_school
    • Collation: utf8mb4_unicode_ci
    • Klik "Create"

Opsi 2: Install MySQL Server Langsung

  1. Download MySQL

  2. Install MySQL

    • Jalankan installer
    • Pilih "Developer Default"
    • Set root password (ingat password ini!)
  3. Buat Database

    # Login ke MySQL Command Line atau MySQL Workbench
    CREATE DATABASE sipintar_school CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

🔧 Konfigurasi Aplikasi

  1. Edit file .env

    # Jika menggunakan XAMPP (default tanpa password)
    DATABASE_URL="mysql://root:@localhost:3306/sipintar_school"
    
    # Jika MySQL dengan password
    DATABASE_URL="mysql://root:your_password@localhost:3306/sipintar_school"
    
    # Jika buat user khusus
    DATABASE_URL="mysql://sipintar_user:sipintar_password@localhost:3306/sipintar_school"
    
  2. Push Schema ke Database

    npx prisma db push
    
  3. Seed Database dengan Data Demo

    npm run db:seed
    

🎯 Test Connection

Setelah setup, test dengan:

# Test koneksi database
npx prisma studio

# Atau jalankan development server
npm run dev

🔐 Demo Accounts yang Tersedia

Setelah seeding berhasil, gunakan akun berikut untuk login:

  • 👨‍💼 Admin:

    • Email: admin@sipintar.com
    • Password: admin123
  • 👨‍🏫 Guru:

    • Email: guru@sipintar.com
    • Password: guru123
  • 👨‍🎓 Siswa:

    • Email: siswa@sipintar.com
    • Password: siswa123

🗄️ Struktur Database yang Sudah Dibuat

Tabel-tabel berikut sudah otomatis dibuat:

📊 Database: sipintar_school
├── 👥 users (Base table untuk semua user)
├── 👨‍🎓 students (Profile siswa)
├── 👨‍🏫 teachers (Profile guru)
├── 📚 subjects (Mata pelajaran)
├── 🏫 classes (Kelas)
├── 📝 class_students (Relasi siswa-kelas)
├── ⏰ attendances (Absensi)
├── 📊 grades (Nilai)
└── 📅 academic_years (Tahun akademik)

🛠️ Commands yang Berguna

# Lihat database di browser
npx prisma studio

# Reset database (hati-hati, akan hapus semua data!)
npx prisma db push --force-reset

# Generate Prisma Client setelah perubahan schema
npx prisma generate

# Seed ulang database
npm run db:seed

⚠️ Troubleshooting

Error: "Can't connect to MySQL server"

  • Pastikan MySQL service berjalan
  • Cek XAMPP Control Panel atau Windows Services

Error: "Database doesn't exist"

  • Buat database sipintar_school dulu via phpMyAdmin atau MySQL Command Line

Error: "Access denied for user"

  • Cek username/password di .env
  • Untuk XAMPP default: user=root, password=kosong

Status Saat Ini

Database sudah berhasil disetup dengan:

  • 1 Admin user
  • 2 Teacher users
  • 2 Student users
  • 2 Subjects (Matematika, Bahasa Indonesia)
  • 2 Classes
  • Sample attendance records
  • Sample grades
  • Active academic year 2024/2025

🎉 Aplikasi siap digunakan! Buka http://localhost:3000 dan login dengan demo accounts di atas.