Aplikasi absensi berbasis Laravel untuk kebutuhan pencatatan kehadiran yang modular, modern, dan siap dikembangkan lebih lanjut.
Developer: Teuku Vaickal Rizki Irdian
— This is a Laravel-based attendance application designed to be modular, modern, and ready for further development.
Developer: Teuku Vaickal Rizki Irdian
Absensi App dibangun dengan Laravel 12, Vite, dan Tailwind CSS. Proyek ini menyiapkan fondasi untuk fitur-fitur absensi seperti manajemen pengguna, peran/izin, export/import data, serta pembuatan dokumen (PDF). Paket yang telah terpasang:
- laravel/framework ^12
- spatie/laravel-permission (role & permission)
- barryvdh/laravel-dompdf (PDF)
- maatwebsite/excel (export/import Excel)
- laravel/breeze (starter auth; dev)
- pestphp/pest + pest-plugin-laravel (pengujian)
- laravel/pint (formatting)
- PHP >= 8.2, Composer
- Node.js >= 18 dan npm
- MySQL/MariaDB (atau database lain yang kompatibel) dan ekstensi pdo
- Salin konfigurasi environment
- Duplikat .env.example menjadi .env dan sesuaikan kredensial database.
- Pasang dependensi backend & frontend
- composer install
- npm install
- Generate APP_KEY
- php artisan key:generate
- Migrasi database (dan seed bila tersedia)
- php artisan migrate
Jika Anda memakai driver database untuk session/cache/queue, pastikan tabel tersedia:
- php artisan session:table && php artisan migrate
- php artisan cache:table && php artisan migrate
- php artisan queue:table && php artisan migrate
Untuk paket tambahan (opsional, jika digunakan):
- Spatie Permission: php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations" && php artisan migrate
- DomPDF: php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider" --tag=config
Anda dapat menggunakan skrip yang sudah disediakan:
- composer dev
Atau jalankan secara terpisah:
- php artisan serve
- php artisan queue:listen --tries=1
- npm run dev
Aplikasi akan tersedia di http://localhost:8000 (default artisan serve) dan Vite dev server untuk aset frontend.
- npm run build
- composer test
Lihat .env.example untuk referensi lengkap. Beberapa yang penting:
- APP_NAME, APP_ENV, APP_DEBUG, APP_URL
- DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
- SESSION_DRIVER, QUEUE_CONNECTION, CACHE_STORE
- MAIL_*
- REDIS_*
- PHP Style: PSR-12 + Laravel Pint.
- Jalankan formatting: vendor/bin/pint atau composer exec pint
- Penamaan
- Kelas: StudlyCase (App\Services\UserService)
- Metode & variabel: camelCase
- Konstanta: UPPER_SNAKE_CASE
- Migration: timestamp_name_table
- Struktur & Praktik
- Pisahkan logika domain ke service/action class bila kompleks.
- Gunakan Form Request untuk validasi.
- Gunakan Eloquent Resource/DTO untuk respons API terstruktur.
- Tulis test (Pest) untuk fitur penting.
- Commit & Branch
- Ikuti Conventional Commits (feat:, fix:, refactor:, test:, docs:, chore:)
- Gunakan branch feature/..., fix/..., docs/...
- app/ — kode aplikasi (Models, Http, Policies, dll.)
- bootstrap/ — bootstrap aplikasi
- config/ — konfigurasi
- database/ — migrations, seeders
- public/ — dokumen publik
- resources/ — views, assets (CSS/JS)
- routes/ — route files (web.php, api.php)
- tests/ — pengujian (Pest)
- Set APP_ENV=production, APP_DEBUG=false
- Jalankan migrasi: php artisan migrate --force
- Build aset: npm run build
- Cache konfigurasi & route: php artisan config:cache && php artisan route:cache
- Pastikan queue worker berjalan bila fitur queue dipakai.
- Periksa permission storage/ dan bootstrap/cache/ (dapat ditulis)
- Cek koneksi database sesuai .env
- Jika error Vite, hapus node_modules dan install ulang: rm -rf node_modules && npm install
- Lisensi: MIT (mengikuti lisensi Laravel skeleton)
- Dikembangkan oleh: Teuku Vaickal Rizki Irdian
Absensi App is built with Laravel 12, Vite, and Tailwind CSS. It provides a foundation for attendance features such as user management, roles/permissions, data export/import, and document generation (PDF). Bundled packages include:
- laravel/framework ^12
- spatie/laravel-permission (roles & permissions)
- barryvdh/laravel-dompdf (PDF)
- maatwebsite/excel (Excel export/import)
- laravel/breeze (starter auth; dev)
- pestphp/pest + pest-plugin-laravel (testing)
- laravel/pint (formatting)
- PHP >= 8.2, Composer
- Node.js >= 18 and npm
- MySQL/MariaDB (or compatible) with pdo extension
- Copy environment config
- Duplicate .env.example to .env and adjust DB credentials.
- Install dependencies
- composer install
- npm install
- Generate APP_KEY
- php artisan key:generate
- Run database migrations (and seed if available)
- php artisan migrate
If you use database drivers for session/cache/queue, ensure tables exist:
- php artisan session:table && php artisan migrate
- php artisan cache:table && php artisan migrate
- php artisan queue:table && php artisan migrate
Optional (if used):
- Spatie Permission: php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations" && php artisan migrate
- DomPDF: php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider" --tag=config
Use the provided script:
- composer dev
Or run separately:
- php artisan serve
- php artisan queue:listen --tries=1
- npm run dev
App will be served at http://localhost:8000 (artisan) with Vite dev server for assets.
- npm run build
- composer test
See .env.example for the full list. Notable ones:
- APP_NAME, APP_ENV, APP_DEBUG, APP_URL
- DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
- SESSION_DRIVER, QUEUE_CONNECTION, CACHE_STORE
- MAIL_*
- REDIS_*
- PHP Style: PSR-12 + Laravel Pint.
- Format code: vendor/bin/pint or composer exec pint
- Naming
- Classes: StudlyCase (App\Services\UserService)
- Methods & variables: camelCase
- Constants: UPPER_SNAKE_CASE
- Migrations: timestamp_name_table
- Structure & Practices
- Extract complex domain logic into service/action classes.
- Use Form Requests for validation.
- Use Eloquent Resources/DTOs for consistent API responses.
- Write tests (Pest) for critical paths.
- Commits & Branching
- Follow Conventional Commits (feat:, fix:, refactor:, test:, docs:, chore:)
- Use feature/..., fix/..., docs/... branches
- app/ — application code (Models, Http, Policies, etc.)
- bootstrap/ — app bootstrap
- config/ — configuration
- database/ — migrations, seeders
- public/ — public document root
- resources/ — views, assets (CSS/JS)
- routes/ — route files (web.php, api.php)
- tests/ — tests (Pest)
- Set APP_ENV=production, APP_DEBUG=false
- Migrate DB: php artisan migrate --force
- Build assets: npm run build
- Cache config and routes: php artisan config:cache && php artisan route:cache
- Ensure a queue worker is running if queue features are used.
- Check write permissions for storage/ and bootstrap/cache/
- Verify DB connectivity per .env
- If Vite errors, reinstall frontend deps: remove node_modules and npm install
- License: MIT
- Developed by: Teuku Vaickal Rizki Irdian