aditya4348 / torin-template
The skeleton application for the Laravel framework.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:project
pkg:composer/aditya4348/torin-template
Requires
- php: ^8.2
- dedoc/scramble: ^0.12.35
- laravel/framework: ^12.0
- laravel/sanctum: ^4.0.1
- laravel/tinker: ^2.10.1
- midtrans/midtrans-php: ^2.6
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/breeze: ^2.3
- laravel/pail: ^1.2.2
- laravel/pint: ^1.24
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- phpunit/phpunit: ^11.5.3
This package is not auto-updated.
Last update: 2025-10-24 08:14:57 UTC
README
Template ini adalah titik awal yang solid untuk membangun backend API menggunakan Laravel. Dilengkapi dengan fitur-fitur esensial yang sering dibutuhkan dalam pengembangan aplikasi modern, memungkinkan Anda untuk fokus pada logika bisnis inti.
✨ Fitur Utama
- Otentikasi API: Menggunakan Laravel Sanctum untuk otentikasi berbasis token yang aman dan stateless.
- Endpoint untuk Register, Login, Logout, Lupa Password, dan Reset Password.
- Proteksi Rate Limiting pada proses login.
- Proteksi Google reCAPTCHA v2 pada endpoint login.
- Manajemen Pengguna & Peran: Sistem peran (role) sederhana (
userdanadmin) dengan middleware untuk proteksi rute. - Integrasi Pembayaran: Terintegrasi dengan Midtrans untuk memproses pembayaran.
- Pembuatan transaksi dan mendapatkan
snap_token. - Penanganan notifikasi pembayaran melalui Webhook.
- Pengecekan status transaksi secara real-time melalui metode Polling.
- Pembuatan transaksi dan mendapatkan
- Contoh CRUD: Endpoint CRUD lengkap untuk resource
Productsebagai contoh implementasi. - Struktur Proyek: Organisasi file yang rapi dan mudah diperluas.
🚀 Memulai Proyek
Prasyarat
- PHP >= 8.2
- Composer
- Database (MySQL, PostgreSQL, dll.)
- Akun Midtrans (untuk fitur pembayaran)
- Kunci Google reCAPTCHA (untuk proteksi login)
Langkah Instalasi
-
Clone repository ini:
git clone https://github.com/username/repository-anda.git cd repository-anda -
Install dependensi PHP:
composer install
-
Buat file
.env: Salin file.env.examplemenjadi.env.cp .env.example .env
-
Generate application key:
php artisan key:generate
-
Konfigurasi file
.env: Buka file.envdan sesuaikan variabel berikut:- Database:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nama_database_anda DB_USERNAME=user_database_anda DB_PASSWORD=password_anda
- Midtrans:
Dapatkan dari dashboard Midtrans Anda.
MIDTRANS_SERVER_KEY=SB-Mid-server-xxxxxxxxxxxxxxxxxxxx MIDTRANS_IS_PRODUCTION=false
- Google reCAPTCHA:
Dapatkan dari konsol Google reCAPTCHA.
RECAPTCHA_SITE_KEY=kunci_site_anda RECAPTCHA_SECRET_KEY=kunci_rahasia_anda
- Database:
-
Jalankan migrasi database: Perintah ini akan membuat tabel-tabel yang dibutuhkan seperti
users,products, dll.php artisan migrate
-
Jalankan server development:
php artisan serve
Aplikasi Anda sekarang berjalan di
http://127.0.0.1:8000.
📖 Dokumentasi API
Berikut adalah daftar endpoint API yang tersedia.
Otentikasi
POST /api/register- Mendaftarkan pengguna baru.
- Body:
name,email,password,password_confirmation.
POST /api/login- Login pengguna dan mendapatkan token.
- Body:
email,password,g-recaptcha-response.
POST /api/logout- Logout pengguna dan menghapus token saat ini.
- Memerlukan: Header
Authorization: Bearer <token>.
POST /api/forgot-password- Mengirim link reset password ke email pengguna.
- Body:
email.
POST /api/reset-password- Mereset password pengguna dengan token yang valid.
- Body:
token,email,password,password_confirmation.
Pengguna
GET /api/user- Mendapatkan data pengguna yang sedang login.
- Memerlukan: Header
Authorization: Bearer <token>.
Pembayaran (Midtrans)
POST /api/payment/create-transaction- Membuat transaksi baru dan mendapatkan
snap_tokendari Midtrans. - Memerlukan: Header
Authorization: Bearer <token>. - Body:
order_id(unik),amount.
- Membuat transaksi baru dan mendapatkan
GET /api/payment/status/{order_id}- Memeriksa status transaksi secara real-time (polling).
- Memerlukan: Header
Authorization: Bearer <token>.
POST /api/payment/notification- Endpoint Webhook untuk menerima notifikasi status dari Midtrans. Endpoint ini tidak memerlukan otentikasi dan harus diatur di dashboard Midtrans Anda.
Produk (Contoh CRUD)
GET /api/products- Menampilkan daftar produk dengan paginasi.
POST /api/products- Membuat produk baru.
- Body:
name,description(opsional),price.
GET /api/products/{product}- Menampilkan detail satu produk.
PUT/PATCH /api/products/{product}- Memperbarui data produk.
DELETE /api/products/{product}- Menghapus produk.
Catatan: Endpoint produk di atas belum diproteksi. Untuk membatasi akses (misalnya hanya untuk admin), pindahkan rute-rute tersebut ke dalam grup middleware
role:admindiroutes/api.php.
Rute Admin
GET /api/admin/dashboard- Contoh endpoint yang hanya bisa diakses oleh pengguna dengan peran
admin. - Memerlukan: Header
Authorization: Bearer <token>dari user admin.
- Contoh endpoint yang hanya bisa diakses oleh pengguna dengan peran