SiPras adalah sistem informasi berbasis web yang dirancang untuk memfasilitasi komunikasi antara siswa dan manajemen sekolah dalam mengelola kerusakan atau masalah prasarana sekolah. Siswa dapat dengan mudah melaporkan masalah prasarana, sementara admin dapat mengelola, merespons, dan melacak status setiap laporan.
-
Autentikasi Multi-Role:
- Admin login dengan username
- Siswa login dengan NIS (Nomor Induk Siswa)
-
Dashboard Statistik:
- Ringkasan total aspirasi
- Grafik distribusi berdasarkan status (pending, ditanggapi, ditutup)
- Statistik perbulan
-
Manajemen Aspirasi:
- Siswa dapat membuat aspirasi baru dengan kategori, deskripsi, dan lokasi
- Upload foto bukti kerusakan
- Melihat riwayat aspirasi mereka
- Menghapus aspirasi mereka sendiri
-
Pengelolaan Admin:
- Melihat semua aspirasi dari seluruh siswa
- Filter dan pencarian aspirasi
- Mengubah status aspirasi (pending, ditanggapi, ditutup)
- Memberikan tanggapan/respon terhadap laporan
-
Interface Modern:
- Desain responsif menggunakan Tailwind CSS
- UI intuitif dan mudah digunakan
- Kompatibel dengan perangkat desktop dan mobile
| Teknologi | Versi | Deskripsi |
|---|---|---|
| Laravel | 11 | Framework PHP modern |
| PHP | β₯ 8.2 | Bahasa pemrograman backend |
| Tailwind CSS | 4 | Framework CSS untuk styling |
| Vite | 7+ | Build tool cepat |
| MySQL/PostgreSQL | - | Database relasional |
| Composer | - | Package manager PHP |
| NPM | - | Package manager JavaScript |
- PHP 8.2 atau lebih tinggi
- Composer
- Node.js dan NPM
- Database server (MySQL atau PostgreSQL)
-
Clone atau setup project
cd c:\Users\Fauzaro01\Documents\Github\SiPras
-
Install dependencies PHP dan JavaScript
composer install npm install
-
Setup environment
copy .env.example .env php artisan key:generate
-
Konfigurasi database (edit file
.env)DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=sipras DB_USERNAME=root DB_PASSWORD=
-
Jalankan migrasi database
php artisan migrate:fresh --seed
-
Build assets (development)
npm run dev
-
Jalankan aplikasi
php artisan serve
-
Akses aplikasi Buka browser dan akses:
http://localhost:8000
Setelah menjalankan seeder, gunakan akun berikut untuk testing:
| Field | Nilai |
|---|---|
| Username | admin |
| Password | admin123 |
| NIS | Password | Nama | Kelas |
|---|---|---|---|
12345 |
12345 |
Budi Santoso | X-1 |
12346 |
12346 |
Siti Nurhaliza | X-2 |
12347 |
12347 |
Ahmad Fauzi | XI-1 |
| Field | Tipe | Deskripsi |
|---|---|---|
id |
INT | Primary key |
name |
VARCHAR | Nama lengkap pengguna |
email |
VARCHAR | Email (opsional) |
username |
VARCHAR | Username untuk admin (opsional) |
nis |
VARCHAR | NIS untuk siswa (opsional) |
role |
ENUM | Role pengguna: admin atau siswa |
kelas |
VARCHAR | Kelas siswa (opsional) |
password |
VARCHAR | Password terenkripsi |
| Field | Tipe | Deskripsi |
|---|---|---|
id |
INT | Primary key |
nama |
VARCHAR | Nama kategori prasarana |
deskripsi |
TEXT | Deskripsi kategori |
| Field | Tipe | Deskripsi |
|---|---|---|
id |
INT | Primary key |
user_id |
INT | Foreign key ke tabel users |
category_id |
INT | Foreign key ke tabel categories |
judul |
VARCHAR | Judul aspirasi |
deskripsi |
TEXT | Deskripsi lengkap masalah |
lokasi |
VARCHAR | Lokasi detail masalah |
bukti_foto |
VARCHAR | Path file foto bukti (opsional) |
status |
ENUM | Status: pending, ditanggapi, ditutup |
tanggapan |
TEXT | Tanggapan dari admin (opsional) |
created_at |
TIMESTAMP | Waktu pembuatan |
updated_at |
TIMESTAMP | Waktu terakhir diupdate |
npm run devnpm run build# Membuat migration baru
php artisan make:migration nama_migration
# Membuat model baru
php artisan make:model NamaModel
# Membuat controller
php artisan make:controller NamaController
# Reset database
php artisan migrate:reset
# Seed database
php artisan db:seedβββ app/
β βββ Http/
β β βββ Controllers/ # Controller aplikasi
β β βββ Middleware/ # Middleware
β βββ Models/ # Eloquent models
β βββ Providers/ # Service providers
βββ bootstrap/ # Bootstrap aplikasi
βββ config/ # File konfigurasi
βββ database/
β βββ migrations/ # Database migrations
β βββ factories/ # Model factories
β βββ seeders/ # Database seeders
βββ public/ # File publik
βββ resources/
β βββ css/ # CSS files
β βββ js/ # JavaScript files
β βββ views/ # Blade templates
βββ routes/ # Route definitions
βββ storage/ # File penyimpanan
βββ tests/ # Test files
βββ vendor/ # Dependencies (auto-generated)
- Password disimpan dengan hashing bcrypt
- CSRF protection pada semua form
- Role-based access control (RBAC)
- Input validation pada semua endpoints
Proyek ini dilisensikan di bawah lisensi MIT. Lihat file LICENSE untuk detail lengkapnya.
Kontribusi sangat diterima! Untuk berkontribusi:
- Fork repository ini
- Buat branch fitur baru (
git checkout -b feature/AmazingFeature) - Commit perubahan (
git commit -m 'Add some AmazingFeature') - Push ke branch (
git push origin feature/AmazingFeature) - Buka Pull Request
Jika Anda memiliki pertanyaan atau menemukan bug, silakan buka issue di repository ini.
- Initial release
- Fitur autentikasi multi-role
- Dashboard statistik
- Manajemen aspirasi
- Pengelolaan admin
Dibuat dengan β€οΈ menggunakan Laravel dan Tailwind CSS