# Contributing Guidelines  
## CBT eSchool

Terima kasih atas minat Anda untuk berkontribusi pada CBT eSchool 

Kami menyambut kontribusi dalam bentuk perbaikan bug, peningkatan fitur, optimasi performa, peningkatan keamanan, dokumentasi, maupun saran pengembangan sistem.

---

## Cara Berkontribusi

### 1. Fork Repository
Silakan fork repository CBT eSchool ke akun GitHub Anda.

### 2. Buat Branch Baru
Gunakan nama branch yang jelas, misalnya:

- feature/timer-improvement
- fix/login-validation
- security/sql-hardening
- docs/update-readme

Hindari commit langsung ke branch `main`.

### 3. Ikuti Standar Kode

Pastikan kode yang dikirim:

- Rapi dan konsisten
- Menggunakan indentasi yang konsisten
- Tidak mengandung debugging code (var_dump, console.log berlebihan, dll)
- Aman dari SQL Injection, XSS, dan CSRF
- Tidak mengandung kredensial atau data sensitif

---

## Standar Commit Message

Gunakan format yang jelas dan singkat, contoh:

- feat: tambah fitur randomisasi soal
- fix: perbaiki validasi input login
- security: hardening query database
- docs: update dokumentasi instalasi

---

## Pull Request (PR)

Saat membuat Pull Request:

- Jelaskan perubahan yang dilakukan
- Sertakan screenshot jika ada perubahan UI
- Jelaskan alasan perubahan
- Pastikan tidak ada error atau conflict

Pull Request akan direview sebelum digabungkan.

---

## Pelaporan Bug

Jika menemukan bug:

1. Gunakan fitur "Issues"
2. Jelaskan:
   - Langkah reproduksi
   - Perilaku yang terjadi
   - Perilaku yang diharapkan
   - Screenshot (jika ada)
   - Versi sistem / environment

---

## Keamanan

Jika menemukan celah keamanan:

- Jangan laporkan melalui Issue publik
- Hubungi maintainer secara langsung
- Sertakan detail teknis yang jelas

---

## Area Prioritas Kontribusi

Kami sangat terbuka untuk kontribusi pada:

- Peningkatan keamanan sistem CBT
- Optimasi performa database
- Anti-cheating mechanism
- UI/UX yang lebih responsif
- Logging & audit trail
- Dokumentasi teknis

---

## Code of Conduct

Semua kontributor wajib mengikuti aturan yang tercantum pada file `CODE_OF_CONDUCT.md`.

---

## Lisensi

Dengan mengirimkan kontribusi, Anda setuju bahwa kode Anda akan menjadi bagian dari proyek CBT eSchool dan mengikuti lisensi proyek.

---

Terima kasih telah membantu mengembangkan CBT eSchool menjadi sistem ujian berbasis komputer yang profesional, aman, dan terpercaya.
