Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
- Simple, fast routing engine.
- Powerful dependency injection container.
- Multiple back-ends for session and cache storage.
- Expressive, intuitive database ORM.
- Database agnostic schema migrations.
- Robust background job processing.
- Real-time event broadcasting.
Laravel is accessible, powerful, and provides tools required for large, robust applications.
Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
In addition, Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
You can also watch bite-sized lessons with real-world projects on Laravel Learn, where you will be guided through building a Laravel application from scratch while learning PHP fundamentals.
Laravel's predictable structure and conventions make it ideal for AI coding agents like Claude Code, Cursor, and GitHub Copilot. Install Laravel Boost to supercharge your AI workflow:
composer require laravel/boost --dev
php artisan boost:installBoost provides your agent 15+ tools and skills that help agents build Laravel applications while following best practices.
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.
In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via taylor@laravel.com. All security vulnerabilities will be promptly addressed.
The Laravel framework is open-sourced software licensed under the MIT license. // import 'admin-lte/dist/js/adminlte.min.js'; // import 'admin-lte'; // window.bootstrap = Bootstrap; // import * as Bootstrap from 'bootstrap'; // import './theme-toggle'; // import { TabulatorFull as Tabulator } from 'tabulator-tables'; // window.Tabulator = Tabulator; // import Swal from 'sweetalert2'; // window.Swal = Swal;
// import * as XLSX from 'xlsx'; // import jsPDF from 'jspdf'; // import 'jspdf-autotable';
// import $ from 'jquery'; // window.$ = window.jQuery = $;
// import 'nestable2'; // import 'nestable2/dist/jquery.nestable.min.css';
// window.Tabulator = Tabulator; // window.XLSX = XLSX; // window.jsPDF = jsPDF; // import ClassicEditor from '@ckeditor/ckeditor5-build-classic'; // window.ClassicEditor = ClassicEditor; // import Tagify from '@yaireo/tagify'; // import '@yaireo/tagify/dist/tagify.css'; // window.Tagify = Tagify; // import.meta.glob([ // '../fonts/**', // ]);
DATABASE / MODEL ? STAFF ? STAFF SCHEDULE ? SETTINGS + VERSIONING ? SETTINGS RESOLVER ? ATTENDANCE CREATION ? VERIFICATION +- GPS ? +- IP ? +- Aggregator ? ? CHECK-IN ? CHECK-OUT ? SESSION FINALIZATION +- Absent ? +- Incomplete ? +- Idempotency ? +- Batch ? +- Scheduler ? ? ATTENDANCE EXCEPTION ? KITA MASUK KE SINI ? EXCEPTION ACTION / RESOLUTION ? CORRECTION POLICY ? CORRECTION REQUEST ? CORRECTION ACTION / APPROVAL ? CONTROLLER + ROUTE FINALIZATION ? FEATURE / REGRESSION TEST ? VIEW / ADMINLTE
Untuk development lokal, terminal: php artisan schedule:work harus tetap hidup agar scheduler terus berjalan. Untuk deployment/operasional nanti, kita perlu membuat Windows Task Scheduler menjalankan php artisan schedule:run setiap menit, sehingga tidak bergantung pada terminal yang dibuka manual. Langkah 2 — Buat task di Windows
- Tekan Win + R, ketik taskschd.msc, lalu Enter.
- Klik Create Task… (bukan Create Basic Task).
- Di tab General, isi nama DHC Laravel Scheduler. Pilih Run only when user is logged on untuk setup lokal ini.
- Di tab Triggers, klik New…. Pilih Begin the task: On a schedule, Daily, lalu centang Repeat task every: 1 minute dan pilih for a duration of: Indefinitely. Pastikan Enabled dicentang.
- Di tab Actions, klik New…, pilih Start a program, lalu isi: Field Isi Program/script C:\xampp\php\php.exe Add arguments artisan schedule:run Start in C:\xampp\htdocs\DHC Penting: kolom Start in tidak memakai tanda kutip, dan harus menunjuk folder project, bukan file artisan.
- Di tab Settings, pilih Do not start a new instance untuk opsi If the task is already running. Lalu klik OK. Checkpoint kita: setelah task tersimpan, klik task DHC Laravel Scheduler di Task Scheduler Library, lalu klik Run pada panel kanan. Lihat kolom Last Run Result.
php artisan make:test Attendance/StaffSelfServiceAttendanceTest (jika Feature) php artisan make:test Attendance/StaffSelfServiceAttendanceTest --unit (Jika Unit)
setting kita membuka check-in 60 menit sebelum jadwal mulai dan menutup sesi 120 menit setelah jadwal mulai. Jadi, misalnya sekarang pukul 13.30 WITA, jadwal mulai pukul 13.45 akan memberi jendela check-in pukul 12.45–15.45.
selesai project ini tutup rute ke HTTP menggunakan perintah Remove-NetFirewallRule -DisplayName "DHC LAN Test HTTP","DHC LAN Test HTTPS" -ErrorAction SilentlyContinue dan mengembalikan SESSION_SECURE_COOKIE=true serta mengembalikan wifi ke Public menggunakan perintah Set-NetConnectionProfile -InterfaceAlias "Wi-Fi" -NetworkCategory Public