2025-10-08
admin
Diperbarui 2025-10-11

Aplikasi Peminjaman Lab Online: Notifikasi WA, Anti Double Booking

Atur jadwal lab, lacak peralatan, dan kirim notifikasi otomatis via WhatsApp! Sistem manajemen laboratorium berbasis web ini akan merevolusi cara Anda mengelola sumber daya lab. Coba sekarang!
Aplikasi Peminjaman Lab Online: Notifikasi WA, Anti Double Booking

🔬 Sistem Manajemen Laboratorium

Sistem manajemen peminjaman laboratorium berbasis web yang modern, responsive, dan terintegrasi dengan notifikasi WhatsApp.

🌟 Fitur Utama

🎯 Menyelesaikan Masalah Operasional

  • Anti-Double Booking: Sistem real-time checking mencegah konflik jadwal
  • Data Akurat: Tracking ketersediaan peralatan dan ruangan secara real-time
  • Proses Approval Cepat: Workflow yang streamlined dengan notifikasi otomatis
  • Transparansi Status: Dashboard lengkap dengan status tracking

📊 Manajemen yang Efektif

  • 🔥 Sistem Prioritas: Level prioritas (Low, Normal, High, Urgent) untuk booking
  • 🔄 Easy Reschedule: Fitur reschedule dan pembatalan yang user-friendly
  • 📈 Monitoring Real-time: Dashboard monitoring penggunaan lab secara live
  • 📋 Laporan Analitik: Report utilisasi, statistik penggunaan, dan trend analysis

👥 Solusi Masalah SDM

  • 🎓 User-Friendly Interface: Design intuitif yang mudah dipelajari
  • 📱 Mobile Responsive: Akses dari smartphone untuk kemudahan penggunaan
  • 🔔 Auto Notification: WhatsApp notification mengurangi ketergantungan pada teknisi
  • 💬 Multi-Channel Communication: Integrasi WhatsApp untuk komunikasi yang lebih baik

🛠️ Teknologi yang Digunakan

  • Backend: Python Flask
  • Database: SQLite (mudah untuk development, bisa upgrade ke PostgreSQL/MySQL)
  • Frontend: HTML5, TailwindCSS, JavaScript ES6+
  • Icons: Font Awesome 6
  • Notifications: WhatsApp Business API
  • Authentication: Session-based dengan password hashing

🚀 Quick Start

1. Prerequisites

# Python 3.8 atau lebih baru
python --version

# Git untuk clone repository
git --version

2. Installation

# Clone repository
git clone <repository-url>
cd lab-management-system

# Buat virtual environment
python -m venv venv

# Aktifkan virtual environment
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

3. Konfigurasi WhatsApp API (Opsional)

Edit file config.py:

# WhatsApp API Configuration
WHATSAPP_API_URL = 'http://localhost:5000'  # URL WhatsApp API server
WHATSAPP_API_ENABLED = True                 # Set False untuk disable notifikasi

# Admin phone numbers untuk notifikasi
ADMIN_PHONE_NUMBERS = [
    '6281234567890',  # Ganti dengan nomor admin yang sebenarnya
    '6281234567891'   # Tambahkan lebih banyak admin jika perlu
]

4. Jalankan Aplikasi

# Initialize database dan jalankan server
python run.py --init-db --samples

# Atau jalankan dengan opsi debug
python run.py --debug

Aplikasi akan berjalan di http://localhost:5000

👤 Akun Demo

Role Username Password Deskripsi Admin admin admin123 Super admin dengan akses penuh Admin laboran admin123 Admin laboran User dosen1 user123 Dosen/Staff pengajar User mahasiswa1 user123 Mahasiswa User mahasiswa2 user123 Mahasiswa 📱 Integrasi WhatsApp

Setup WhatsApp API

  1. Install WhatsApp API Server (menggunakan dokumentasi yang Anda berikan)
  2. Jalankan WhatsApp API:
# Sesuaikan dengan setup WhatsApp API Andapython whatsapp_api_server.py
  1. Scan QR Code untuk menghubungkan WhatsApp
  2. Test Notifikasi:
python run.py --test-wa

Jenis Notifikasi

  • 🆕 Booking Baru: Notifikasi ke admin saat ada booking baru
  • Approval: Notifikasi ke user saat booking disetujui/ditolak
  • ⚠️ Reminder: Reminder 1 jam sebelum jadwal dimulai
  • 🔧 Maintenance: Notifikasi maintenance lab ke user terkait
  • 📊 Daily Summary: Ringkasan harian untuk admin

🏗️ Struktur Project

lab-management-system/
├── app.py                 # Main Flask application
├── config.py             # Configuration settings
├── models.py             # Database models dan functions
├── requirements.txt      # Python dependencies
├── run.py               # Application runner
├── README.md            # Documentation
├── utils/
│   ├── whatsapp_service.py      # WhatsApp API integration
│   └── notification_service.py  # Notification management
└── templates/
    ├── base.html            # Base template
    ├── login.html           # Login page
    ├── dashboard.html       # Dashboard
    ├── booking.html         # Booking form
    ├── bookings.html        # Bookings list
    ├── laboratories.html    # Labs list
    ├── equipment.html       # Equipment list
    ├── reports.html         # Reports page
    ├── profile.html         # User profile
    └── admin/
        ├── users.html       # User management
        └── labs.html        # Lab management

📋 Panduan Penggunaan

Untuk User (Dosen/Mahasiswa)

  1. Login dengan akun yang telah diberikan
  2. Lihat Dashboard untuk overview booking Anda
  3. Buat Booking Baru:
  • Pilih laboratorium
  • Tentukan waktu dan durasi
  • Isi tujuan penggunaan
  • Pilih peralatan yang dibutuhkan
  • Submit dan tunggu approval
  1. Monitor Status booking di halaman "Booking Saya"
  2. Dapatkan Notifikasi via WhatsApp untuk setiap update

Untuk Admin

  1. Login dengan akun admin
  2. Review Booking Requests di dashboard
  3. Approve/Reject booking dengan catatan
  4. Monitor Penggunaan lab secara real-time
  5. Kelola Pengguna dan laboratorium
  6. Lihat Laporan utilisasi dan statistik
  7. Setup Maintenance lab dengan notifikasi otomatis

⚙️ Konfigurasi Lanjutan

Database Configuration

Secara default menggunakan SQLite. Untuk production, ubah di config.py:

# PostgreSQL
DATABASE = 'postgresql://user:password@localhost/labmanagement'

# MySQL
DATABASE = 'mysql://user:password@localhost/labmanagement'

Notification Settings

# Auto-approval untuk booking singkat
AUTO_APPROVE_DURATION_MINUTES = 60

# Batas waktu pembatalan
CANCEL_DEADLINE_HOURS = 2

# Maksimal durasi booking
MAX_BOOKING_DURATION_HOURS = 8

Security Settings

# Ganti secret key untuk production
SECRET_KEY = 'your-super-secret-key-here'

# Session timeout
PERMANENT_SESSION_LIFETIME = timedelta(hours=24)

🔧 Command Line Tools

# Initialize database
python run.py --init-db --samples

# Reset database (DANGER: menghapus semua data)
python run.py --reset-db

# Buat admin user baru
python run.py --create-admin

# Test WhatsApp connection
python run.py --test-wa

# Run dengan debug mode
python run.py --debug

# Run di host/port tertentu
python run.py --host 192.168.1.100 --port 8080

📊 Features Detail

Real-time Availability Checking

  • AJAX-based availability checking
  • Prevent double booking dengan database locking
  • Visual feedback untuk user

Priority-based Booking System

  • 4 level prioritas: Low, Normal, High, Urgent
  • Auto-prioritization untuk jenis kegiatan tertentu
  • Queue management berdasarkan prioritas

Comprehensive Reporting

  • Utilisasi lab per periode
  • User activity statistics
  • Equipment usage tracking
  • Export ke CSV/PDF (coming soon)

Mobile-First Design

  • Responsive design untuk semua device
  • Touch-friendly interface
  • Offline-capable PWA (coming soon)

🐛 Troubleshooting

Database Issues

# Jika database corrupt
python run.py --reset-db

# Cek database integrity
sqlite3 lab_management.db "PRAGMA integrity_check;"

WhatsApp API Issues

# Test koneksi
python run.py --test-wa

# Cek log
tail -f lab_management.log | grep -i whatsapp

Permission Issues

# Set proper permissions
chmod +x run.py
chmod 755 lab_management.db

🔮 Roadmap

Version 2.0 (Coming Soon)

  • [ ] Multi-tenant support untuk multiple institutions
  • [ ] Calendar integration (Google Calendar, Outlook)
  • [ ] QR Code check-in/check-out
  • [ ] Equipment reservation with barcode scanning
  • [ ] Advanced reporting dengan charts dan graphs
  • [ ] API endpoints untuk mobile app integration

Version 2.1

  • [ ] Room booking untuk meeting rooms
  • [ ] Resource management (chemicals, consumables)
  • [ ] Maintenance scheduling otomatis
  • [ ] User feedback system
  • [ ] Multi-language support

🤝 Contributing

  1. Fork repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

💬 Support

🙏 Acknowledgments

  • Flask team untuk web framework yang excellent
  • TailwindCSS untuk CSS framework yang powerfull
  • Font Awesome untuk icon yang comprehensive
  • WhatsApp Business API untuk notification integration

🔬 Lab Management System - Making laboratory management simple, efficient, and transparent.

Developed with ❤️ for educational institutions

blog teknologi admin

Artikel Terkait