Eventa adalah aplikasi web modern yang dirancang untuk menyederhanakan proses penyelenggaraan acara. Dibangun dengan tumpukan teknologi TALL yang dimodifikasi (Laravel & React/Inertia), platform ini menyediakan antarmuka yang mulus dan reaktif bagi penyelenggara dan peserta. Mulai dari pembuatan halaman acara yang menarik hingga manajemen pendaftaran dan check-in peserta, Eventa menyediakan semua alat yang Anda butuhkan.
-
Untuk Peserta:
- 🌐 Landing Page Dinamis: Halaman utama yang menarik menampilkan acara unggulan.
- 🔍 Pencarian & Penemuan Acara: Mudah menemukan acara berdasarkan kategori, tanggal, atau lokasi.
- 📄 Halaman Detail Acara: Informasi lengkap termasuk deskripsi, jadwal sesi, pembicara, dan lokasi.
- 🎟️ Pendaftaran Mudah: Proses pendaftaran yang sederhana untuk acara.
- 📱 Tiket Digital: Akses tiket acara melalui QR code yang dapat disimpan di perangkat.
- 📅 Pengingat Acara: Notifikasi untuk acara yang akan datang.
-
Untuk Penyelenggara (Admin):
- 🛠️ Dashboard Admin: Dasbor terpusat untuk mengelola semua aspek acara.
- ➕ Manajemen Acara & Sesi: Buat, perbarui, dan hapus acara beserta sesi-sesinya.
- 🎨 Kustomisasi Tema: Sesuaikan tampilan halaman acara dengan logo dan warna merek Anda.
- 📊 Dasbor Analitik: Pantau statistik pendaftaran dan kehadiran secara real-time.
- ✅ Manajemen Check-in: Lakukan check-in peserta dengan mudah menggunakan pemindai QR code.
- 🔔 Manajemen Notifikasi: Kirim pemberitahuan penting kepada peserta terdaftar.
- 📈 Laporan & Ekspor Data: Hasilkan laporan komprehensif dan ekspor data ke format yang umum digunakan.
- Laravel 12: Framework PHP modern dengan sintaks yang ekspresif dan eleganuntuk pengembangan web yang menyenangkan.
- Laravel Fortify: Implementasi otentikasi backend yang kuat dengan fitur seperti verifikasi email, pemulihan kata sandi, dan otentikasi dua faktor.
- Laravel Sanctum: Sistem otentikasi API ringan untuk SPA (Single Page Applications), aplikasi seluler, dan API sederhana berbasis token.
- React 18: Library JavaScript untuk membangun antarmuka pengguna dengan komponen yang dapat digunakan kembali dan performa yang dioptimalkan.
- Inertia.js: Jembatan yang menghubungkan backend Laravel dengan frontend React tanpa perlu membuat API terpisah.
- Vite: Build tool frontend modern yang menawarkan pengalaman pengembangan yang luar biasa cepat dengan Hot Module Replacement (HMR).
- Tailwind CSS: Framework CSS utility-first yang memungkinkan pengembangan UI yang cepat dan konsisten tanpa meninggalkan HTML.
- ESLint: Linter JavaScript yang membantu menemukan dan memperbaiki masalah dalam kode JavaScript.
- Prettier: Pemformat kode yang memastikan gaya kode yang konsisten di seluruh proyek.
- PHPUnit: Framework pengujian untuk PHP yang memungkinkan pengujian otomatis yang komprehensif.
- Kompatibel dengan MySQL, PostgreSQL, dan SQLite.
- Migrasi database yang terkelola dengan baik untuk versioning skema.
- Seeder untuk data pengujian dan pengembangan.
Eventa mengikuti struktur proyek Laravel standar dengan beberapa penyesuaian untuk integrasi React dan Inertia:
Eventa/
├── app/ # Kode PHP utama aplikasi
│ ├── Actions/ # Kelas aksi Fortify
│ ├── Console/ # Perintah Artisan kustom
│ ├── Http/ # Controllers, Middleware, Requests
│ ├── Models/ # Model Eloquent
│ └── Providers/ # Service Providers
├── bootstrap/ # File bootstrap aplikasi
├── config/ # File konfigurasi
├── database/ # Migrasi dan seeder database
├── public/ # Aset yang dapat diakses publik
├── resources/ # Aset frontend (JS, CSS, views)
│ ├── css/ # File stylesheet
│ ├── js/ # Kode JavaScript/React
│ │ ├── components/ # Komponen React
│ │ │ ├── Navigation/ # Komponen navigasi
│ │ │ └── UI/ # Komponen UI yang dapat digunakan kembali
│ │ ├── layouts/ # Layout React
│ │ └── pages/ # Halaman React
│ └── views/ # Template Blade
├── routes/ # Definisi rute aplikasi
├── storage/ # File yang dihasilkan aplikasi
└── tests/ # Tes otomatis
Ikuti langkah-langkah ini untuk menjalankan salinan lokal dari proyek ini.
Pastikan lingkungan pengembangan Anda memenuhi persyaratan berikut:
- PHP >= 8.2
- Composer 2.x
- Node.js >= 18.x
- NPM >= 9.x
- Git
- Server Database (misalnya, MySQL, MariaDB, atau PostgreSQL)
-
Clone Repositori
git clone https://github.com/[YOUR_USERNAME]/Eventa-EventOrganizerFromWeb.git cd Eventa-EventOrganizerFromWeb
-
Instal Dependensi Backend
composer install
-
Instal Dependensi Frontend
npm install
Catatan: Jika Anda mengalami masalah
ERESOLVE peer dependency
, coba jalankannpm install --legacy-peer-deps
. -
Konfigurasi Lingkungan
- Salin file
.env.example
menjadi.env
.cp .env.example .env
- Buat kunci aplikasi yang unik.
php artisan key:generate
- Salin file
-
Konfigurasi Database
- Buka file
.env
dan perbarui variabel koneksi database sesuai dengan pengaturan lokal Anda.DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=eventa DB_USERNAME=root DB_PASSWORD=
- Pastikan Anda telah membuat database
eventa
di server database Anda.
- Buka file
-
Jalankan Migrasi Database
- Perintah ini akan membuat semua tabel yang diperlukan di database Anda.
php artisan migrate
- Perintah ini akan membuat semua tabel yang diperlukan di database Anda.
-
Seed Database (Opsional)
- Untuk mengisi database dengan data contoh:
php artisan db:seed
- Untuk mengisi database dengan data contoh:
-
Jalankan Server Pengembangan
- Perintah ini akan memulai server Vite untuk frontend dan server PHP untuk backend secara bersamaan.
npm run dev
- Atau, Anda dapat menjalankan server PHP secara terpisah jika diperlukan:
php artisan serve
- Perintah ini akan memulai server Vite untuk frontend dan server PHP untuk backend secara bersamaan.
-
Akses Aplikasi
- Aplikasi Anda sekarang berjalan di http://localhost:8000.
- Server Vite berjalan di http://localhost:5173.
- Pendaftaran: Anda dapat mendaftarkan pengguna baru melalui halaman registrasi.
- Membuat Pengguna Admin: Untuk mengakses fungsionalitas admin, ubah peran pengguna di database (
users
tabel, kolomrole
) menjadiadmin
, atau gunakan perintah Artisan kustom:Atau melalui Tinker:php artisan make:admin [email protected]
php artisan tinker >>> $user = App\Models\User::find(1); >>> $user->role = 'admin'; >>> $user->save();
Eventa mengikuti konvensi kode standar untuk Laravel dan React:
- PHP: Mengikuti PSR-12 dengan beberapa penyesuaian Laravel.
- JavaScript/React: Mengikuti konvensi ESLint dan Prettier yang dikonfigurasi.
- CSS: Menggunakan Tailwind CSS dengan pendekatan utility-first.
-
Komponen Frontend:
- Komponen UI generik ditempatkan di
resources/js/components/UI/
- Komponen khusus fitur ditempatkan di direktori yang sesuai dengan fitur
- Gunakan pendekatan komponen fungsional dengan React Hooks
- Komponen UI generik ditempatkan di
-
Backend:
- Ikuti pendekatan MVC Laravel standar
- Gunakan fitur Laravel seperti Form Requests untuk validasi
- Implementasikan kebijakan untuk otorisasi
Proyek ini dilengkapi dengan suite pengujian PHPUnit untuk backend dan Jest untuk frontend.
-
Tes Backend:
php artisan test
-
Tes Frontend:
npm run test
-
Linting:
npm run lint
-
Formatting:
npm run format
Catatan Penting: Pengujian backend dikonfigurasi untuk menggunakan database SQLite. Jika Anda mengalami galat
could not find driver
, itu berarti ekstensiphp_pdo_sqlite
tidak diaktifkan di konfigurasi PHP Anda (php.ini
). Anda harus mengaktifkannya agar pengujian dapat berjalan.
Kami sangat menghargai kontribusi dari komunitas! Berikut adalah langkah-langkah untuk berkontribusi pada proyek Eventa:
- Fork repositori
- Buat branch fitur (
git checkout -b feature/amazing-feature
) - Commit perubahan Anda (
git commit -m 'Add some amazing feature'
) - Push ke branch (
git push origin feature/amazing-feature
) - Buka Pull Request
- Pastikan kode Anda mengikuti konvensi kode proyek
- Tambahkan tes untuk fitur atau perbaikan baru
- Perbarui dokumentasi jika diperlukan
- Pastikan semua tes lulus sebelum mengirimkan PR
Berikut adalah fitur yang direncanakan untuk rilis mendatang:
- Integrasi pembayaran untuk tiket berbayar
- Sistem tiket dengan tingkatan berbeda
- Aplikasi seluler untuk peserta
- Integrasi kalender dengan Google/Apple Calendar
- Sistem pemasaran email untuk penyelenggara
- Dukungan untuk acara hybrid (online dan offline)
- Analitik lanjutan dengan visualisasi data
Proyek ini dilisensikan di bawah MIT License. Lihat file LICENSE
untuk detail lebih lanjut.
Eventa dikembangkan dan dikelola oleh tim pengembang yang berdedikasi. Kami selalu terbuka untuk kolaborasi dan kontribusi dari komunitas.
Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk menghubungi kami:
- Email: [email protected]
- GitHub Issues: Untuk melaporkan bug atau meminta fitur
- Dokumentasi: docs.eventa-app.com