203 lines
4.6 KiB
Markdown
203 lines
4.6 KiB
Markdown
# Sistem Antrian Puskesmas
|
|
|
|
Sistem antrian digital untuk Puskesmas yang dibangun dengan Laravel dan Tailwind CSS.
|
|
|
|
## 🚀 Fitur
|
|
|
|
- **Landing Page** - Halaman utama yang menarik dengan informasi layanan
|
|
- **Sistem Login/Register** - Autentikasi pengguna dengan validasi
|
|
- **Dashboard Admin** - Panel admin untuk mengelola antrian
|
|
- **Display Antrian** - Layar display untuk menampilkan antrian yang sedang dipanggil
|
|
- **Responsive Design** - Tampilan yang responsif untuk semua perangkat
|
|
|
|
## 🛠️ Teknologi
|
|
|
|
- **Backend**: Laravel 11
|
|
- **Frontend**: Tailwind CSS
|
|
- **Database**: MySQL
|
|
- **Authentication**: Laravel Built-in Auth
|
|
|
|
## 📋 Struktur Database
|
|
|
|
### Tabel Users
|
|
- `id` - Primary Key
|
|
- `nama` - Nama lengkap pasien
|
|
- `alamat` - Alamat pasien
|
|
- `jenis_kelamin` - Laki-laki/Perempuan
|
|
- `no_hp` - Nomor HP
|
|
- `no_ktp` - Nomor KTP (unique)
|
|
- `poli_id` - Foreign key ke tabel polis
|
|
- `pekerjaan` - Pekerjaan pasien
|
|
- `password` - Password untuk login
|
|
- `remember_token` - Token untuk remember me
|
|
|
|
### Tabel Polis
|
|
- `id` - Primary Key
|
|
- `nama_poli` - Nama poli (umum, gigi, kesehatan jiwa, kesehatan tradisional)
|
|
|
|
### Tabel Lokets
|
|
- `id` - Primary Key
|
|
- `nama_loket` - Nama loket
|
|
|
|
### Tabel Antrians
|
|
- `id` - Primary Key
|
|
- `user_id` - Foreign key ke users
|
|
- `no_antrian` - Nomor antrian
|
|
- `tanggal_antrian` - Tanggal antrian
|
|
- `is_call` - Status dipanggil
|
|
- `status` - Status antrian (menunggu, dipanggil, selesai, batal)
|
|
- `waktu_panggil` - Waktu dipanggil
|
|
- `loket_id` - Foreign key ke lokets
|
|
|
|
### Tabel Riwayat Panggilan
|
|
- `id` - Primary Key
|
|
- `antrian_id` - Foreign key ke antrians
|
|
- `waktu_panggilan` - Waktu panggilan
|
|
|
|
## 🚀 Instalasi
|
|
|
|
1. **Clone repository**
|
|
```bash
|
|
git clone <repository-url>
|
|
cd Puskesmas
|
|
```
|
|
|
|
2. **Install dependencies**
|
|
```bash
|
|
composer install
|
|
npm install
|
|
```
|
|
|
|
3. **Setup environment**
|
|
```bash
|
|
cp .env.example .env
|
|
php artisan key:generate
|
|
```
|
|
|
|
4. **Konfigurasi database**
|
|
- Edit file `.env` dan sesuaikan konfigurasi database
|
|
```env
|
|
DB_CONNECTION=mysql
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=3306
|
|
DB_DATABASE=puskesmas
|
|
DB_USERNAME=root
|
|
DB_PASSWORD=
|
|
```
|
|
|
|
5. **Jalankan migrasi dan seeder**
|
|
```bash
|
|
php artisan migrate:fresh --seed
|
|
```
|
|
|
|
6. **Jalankan server development**
|
|
```bash
|
|
php artisan serve
|
|
```
|
|
|
|
## 📱 Halaman yang Tersedia
|
|
|
|
### 1. Landing Page (`/`)
|
|
- Halaman utama dengan informasi layanan
|
|
- Navigasi ke login dan register
|
|
- Informasi tentang cara kerja sistem
|
|
|
|
### 2. Login (`/login`)
|
|
- Form login dengan email dan password
|
|
- Remember me functionality
|
|
- Link ke halaman register
|
|
|
|
### 3. Register (`/register`)
|
|
- Form pendaftaran dengan data lengkap
|
|
- Validasi input
|
|
- Pilihan poli
|
|
|
|
### 4. Dashboard (`/dashboard`)
|
|
- Panel admin dengan statistik
|
|
- Quick actions untuk mengelola antrian
|
|
- Tabel antrian terbaru
|
|
- Logout functionality
|
|
|
|
### 5. Display (`/display`)
|
|
- Layar display untuk antrian
|
|
- Auto-refresh setiap 5 detik
|
|
- Tampilan antrian per poli
|
|
- Antrian berikutnya
|
|
|
|
## 👤 Akun Default
|
|
|
|
Setelah menjalankan seeder, tersedia akun default:
|
|
|
|
**Admin:**
|
|
- Username: `admin`
|
|
- Password: `password`
|
|
|
|
**User:**
|
|
- Nama: `Budi Santoso`
|
|
- No KTP: `1234567890123456`
|
|
- Password: `password`
|
|
|
|
## 🎨 Customization
|
|
|
|
### Warna
|
|
Sistem menggunakan warna custom yang dapat diubah di `resources/views/layouts/app.blade.php`:
|
|
|
|
```javascript
|
|
tailwind.config = {
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
primary: '#3B82F6', // Blue
|
|
secondary: '#1E40AF', // Dark Blue
|
|
accent: '#10B981' // Green
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Layout
|
|
Layout utama dapat dimodifikasi di `resources/views/layouts/app.blade.php`
|
|
|
|
## 🔧 Development
|
|
|
|
### Menambah Poli Baru
|
|
1. Tambahkan data di seeder `AntrianPuskesmasSeeder.php`
|
|
2. Update controller `DisplayController.php` untuk menampilkan poli baru
|
|
3. Update view `display/index.blade.php` untuk menampilkan poli baru
|
|
|
|
### Menambah Fitur Baru
|
|
1. Buat controller baru di `app/Http/Controllers/`
|
|
2. Buat view di `resources/views/`
|
|
3. Tambahkan route di `routes/web.php`
|
|
4. Update navigasi di layout
|
|
|
|
## 📊 Monitoring
|
|
|
|
Sistem menyediakan monitoring real-time untuk:
|
|
- Total pasien terdaftar
|
|
- Antrian yang sedang menunggu
|
|
- Antrian yang sudah selesai
|
|
- Poli yang aktif
|
|
|
|
## 🔒 Security
|
|
|
|
- Password di-hash menggunakan bcrypt
|
|
- CSRF protection aktif
|
|
- Validasi input pada semua form
|
|
- Session management yang aman
|
|
|
|
## 📞 Support
|
|
|
|
Untuk bantuan atau pertanyaan, silakan hubungi:
|
|
- Email: support@puskesmas.com
|
|
- Phone: (021) 1234-5678
|
|
|
|
## 📄 License
|
|
|
|
Proyek ini dilisensikan di bawah MIT License.
|
|
|
|
---
|
|
|
|
**Dibuat dengan ❤️ untuk Puskesmas**
|