Sebuah platform gamifikasi produktivitas berbasis web yang dikembangkan menggunakan Laravel 12. Sistem ini dirancang untuk mengubah aktivitas positif dan 'to-do list' harian menjadi sebuah petualangan RPG yang menarik. Pengguna dapat menyelesaikan tugas (Quests) untuk mendapatkan imbalan (XP & Gold), naik level, dan membangun kebiasaan positif di dunia nyata.
Gamifikasi produktivitas 🎮 + RPG System 🗡️ + Habit Tracking 📊 = LifeQuest ⚔️
- Framework: Laravel 12
- Language: PHP 8.3+
- Database: MySQL / SQLite (development)
- Frontend: Blade Templates, Custom CSS, Alpine.js, Tailwind CSS
- Build Tools: Vite, NPM, Composer
- JS Libraries: SweetAlert2, Cropper.js, Axios
- Icons: Bootstrap Icons
- External API: OpenWeatherMap (Weather Widget)
app/
├── Models/ # 4 Core Models
│ ├── User.php # User dengan RPG stats
│ ├── Quest.php # Quest definitions
│ ├── QuestLog.php # Quest history & submissions
│ └── Achievement.php # Achievement system
├── Http/Controllers/ # 12 Controllers
│ ├── DashboardController.php
│ ├── QuestController.php
│ ├── AchievementController.php
│ ├── LeaderboardController.php
│ ├── ProfileController.php
│ └── Admin/ # Admin Controllers
│ ├── AdminDashboardController.php
│ ├── AdminQuestController.php
│ ├── AdminAchievementController.php
│ └── SubmissionController.php
├── Services/ # Business Logic
│ └── AchievementService.php
└── Helpers/ # Global Helper Functions
└── helpers.php
Core Tables:
users- User accounts dengan RPG stats (level, XP, gold, intelligence, strength, stamina, agility)quests- Quest templates (admin & user created)quest_logs- Quest progress tracking & submissionsachievements- Achievement definitions dengan JSON conditionsuser_achievements- Unlocked achievements (pivot table)
- Role System: Admin & Player dengan middleware-based access control
- Autentikasi: Laravel Breeze (Login, Register, Email Verification, Password Reset)
- RPG Stats: Intelligence, Strength, Stamina, Agility (dapat ditingkatkan via quests)
- Statistik Global: Total XP, Gold, Level, Quest Completed, Achievements Unlocked
- Progress Harian: Quest hari ini, XP earned today
- Widget Interaktif:
- Real-time Clock
- Weather Widget (OpenWeatherMap API)
- Motivational Quotes
- Recent Activities: 5 quest terakhir yang diselesaikan
- Admin Quest: Dibuat oleh admin, biasanya memerlukan submission proof
- User Quest: Quest personal yang dibuat player sendiri
- Daily (Harian): Reset setiap hari tengah malam, bisa diambil ulang
- Weekly (Mingguan): Reset setiap minggu
- Once (Sekali): Quest permanen, selesai satu kali
- Easy: 1x reward multiplier
- Medium: 1.5x reward multiplier
- Hard: 2x reward multiplier
- XP - Experience points untuk leveling
- Gold - Virtual currency
- Stats Boost - Intelligence / Strength / Stamina / Agility
- Browse available quests
- Take quest → Quest log created dengan status 'pending'
- Complete quest:
- User Quest: Langsung complete, dapat reward
- Admin Quest: Upload submission proof → status 'submitted'
- Menunggu admin review (untuk admin quest)
- Terima reward setelah approved
- Achievement Conditions (berbasis JSON):
{"quests_completed": 10} // Complete 10 quests {"stat": "intelligence", "value": 50} // Reach 50 intelligence {"gold_earned": 1000} // Earn 1000 gold - Auto-Detection:
AchievementServiceotomatis check & unlock saat quest completed - Achievement Rewards: Bonus XP & Gold
- Progress Tracking: Visual progress bar untuk locked achievements
- Create/Edit/Delete admin quests
- Set difficulty, frequency, rewards, stat bonus
- Link quest ke achievement tertentu
- Toggle active/inactive status
- List semua submissions dari players
- View submission proof (images, documents)
- Approve: Berikan reward & unlock achievement
- Reject: Kembalikan ke 'pending' dengan admin notes
- Notifikasi otomatis ke player
- Create achievements dengan kondisi unlock
- Upload custom icon untuk setiap achievement
- Set reward values (XP & Gold)
- Formula:
Level = floor(pow(XP / 100, 0.5)) + 1 - Contoh Progression:
- Level 1: 0 XP
- Level 2: 100 XP
- Level 3: 400 XP
- Level 4: 900 XP
- Level 5: 1,600 XP
- Level 10: 8,100 XP
- Ranking pemain berdasarkan total XP (level tertinggi)
- Menampilkan Top 100 players
- Public untuk semua authenticated users
- Lihat stats pemain lain (level, gold, intelligence, dll)
- Update nama, email, password
- Avatar Upload dengan image cropping (Cropper.js)
- Delete account option
- View personal stats & achievements
- Badge Counter: Real-time notification count di navbar
- For Admin: Notifikasi saat ada submission baru dari player
- For Player: Notifikasi saat admin membuat quest baru
-
Clone Repository
git clone https://github.com/ThariqAdzikra/LifeQuest.git cd LifeQuest -
Install Dependencies
composer install npm install npm run dev
-
Konfigurasi Environment
- Duplikat file
.env.examplemenjadi.env - Atur koneksi database:
DB_DATABASE=lifequest DB_USERNAME=root DB_PASSWORD=
- Opsional: Atur API Key untuk widget cuaca (OpenWeatherMap)
OPENWEATHER_API_KEY=API_KEY_ANDA
- Duplikat file
-
Generate Key & Migrasi Database
php artisan key:generate php artisan migrate --seed
-
Storage Link (Sangat penting untuk upload avatar)
php artisan storage:link
-
Jalankan Server
php artisan serve
| Role | Password | |
|---|---|---|
| Admin | admin@example.com |
password |
| Player | test@example.com |
password |
- Register & Login → Verifikasi email
- Dashboard → Cek stats, daily progress, widgets
- Browse Quests → Lihat quest admin & buat quest sendiri
- Take Quest → Quest masuk ke quest log
- Complete Quest:
- User Quest: Langsung selesai → Terima reward
- Admin Quest: Upload bukti → Tunggu approval
- Earn Rewards → XP, Gold, Stats meningkat
- Level Up → Achievement auto-unlock
- Leaderboard → Bandingkan dengan player lain
- Login → Admin dashboard
- Create Quest → Set difficulty, rewards, requirements
- Manage Quests → CRUD operations pada quest
- Review Submissions:
- Lihat bukti dari player
- Approve → Player dapat reward
- Reject → Kembali ke pending dengan notes
- Manage Achievements → Create & edit achievements
- Monitor Platform → Lihat statistik & aktivitas user
✅ Role-based Access Control - Middleware untuk Admin & Player
✅ RPG Gamification - Level, XP, Gold, 4 Stats
✅ Quest System - Daily/Weekly/Once dengan auto-reset
✅ Achievement Auto-Unlock - Service layer dengan JSON conditions
✅ Submission Review - Admin approval workflow
✅ File Upload - Avatar dengan cropping, submission proofs
✅ Notification System - Real-time badge counter
✅ Leaderboard - Global player ranking
✅ Responsive Design - Mobile-friendly dengan Tailwind CSS
Project ini dibuat for educational purpose only.
Tidak diperjualbelikan dan ditujukan untuk kebutuhan akademik Universitas Riau.
NIM: 2303113029
Program Studi: Sistem Informasi B 2023
Fakultas: Matematika dan Ilmu Pengetahuan Alam
Universitas: Universitas Riau
Mata Kuliah:
Pengembangan Sistem Informasi Berbasis Web Lanjut
📧 Email: Contact via GitHub
🔗 Repository: LifeQuest
Made with ❤️ and ☕ for learning purposes