A full-stack Single Page Application for digital payment services with seamless user experience
- 💰 Multi-Payment Services: Pulsa, Paket Data, Token Listrik, dan lebih banyak lagi
- 👤 User Authentication: Secure login/register dengan Laravel Sanctum
- 📱 Responsive Design: Perfect di desktop, tablet, dan mobile
- ⚡ Real-time Updates: Live status transaksi dan notifikasi
- 📊 Transaction History: Riwayat lengkap semua transaksi
- 🔒 Secure Payments: Integrasi langsung dengan Digiflazz API
- SPA Architecture: Single Page Application untuk performa optimal
- RESTful API: Clean dan well-documented API endpoints
- Modern UI/UX: Beautiful interface dengan Tailwind CSS
- State Management: Efficient state handling dengan React hooks
- Error Handling: Comprehensive error handling dan user feedback
- Loading States: Smooth loading indicators untuk better UX
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Digiflazz │
│ (React SPA) │◄──►│ (Laravel API) │◄──►│ API │
│ │ │ │ │ │
│ • React.js │ │ • Laravel 11 │ │ • PPOB Services │
│ • Tailwind CSS │ │ • Sanctum Auth │ │ • Price List │
│ • Vite │ │ • MySQL DB │ │ • Transactions │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Node.js (v18+)
- PHP (v8.2+)
- Composer
- MySQL (v8.0+)
- Git
-
Clone the repository
git clone https://github.com/akbarryyan/ppob-webapp.git cd ppob-webapp
-
Setup Backend (Laravel)
cd backend composer install cp .env.example .env php artisan key:generate # Create MySQL database and update .env file # DB_CONNECTION=mysql # DB_HOST=127.0.0.1 # DB_PORT=3306 # DB_DATABASE=ppob_webapp # DB_USERNAME=your_username # DB_PASSWORD=your_password php artisan migrate --seed php artisan serve
-
Setup Frontend (React)
cd frontend npm install npm run dev
-
Configure Environment
- Update
.env
dengan Digiflazz API credentials - Set MySQL database connection
- Configure CORS settings
- Update
ppob-webapp/
├── 🎨 frontend/ # React SPA
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API services
│ │ ├── hooks/ # Custom React hooks
│ │ └── utils/ # Helper functions
│ └── package.json
│
├── ⚙️ backend/ # Laravel API
│ ├── app/
│ │ ├── Http/Controllers/ # API controllers
│ │ ├── Models/ # Eloquent models
│ │ └── Services/ # Business logic
│ ├── database/
│ │ ├── migrations/ # Database schema
│ │ └── seeders/ # Sample data
│ └── routes/api.php # API routes
│
└── 📖 README.md
Method | Endpoint | Description |
---|---|---|
POST |
/api/register |
User registration |
POST |
/api/login |
User authentication |
GET |
/api/products |
Get PPOB products |
POST |
/api/transaction |
Create transaction |
GET |
/api/history |
Transaction history |
GET |
/api/balance |
User balance |
- Clean dan modern landing page
- Quick access ke semua layanan PPOB
- Real-time product prices
- Step-by-step payment process
- Input validation dan error handling
- Payment confirmation dengan details lengkap
- User profile management
- Transaction history dengan filter
- Balance dan quick actions
- 🛡 Authentication: Laravel Sanctum untuk secure API access
- 🔒 Input Validation: Comprehensive validation di frontend dan backend
- 🚫 CSRF Protection: Built-in Laravel CSRF protection
- ⚡ Rate Limiting: API rate limiting untuk prevent abuse
- 🔐 Secure Headers: Security headers untuk XSS protection
Kami menyambut kontribusi dari developer lain! Berikut cara berkontribusi:
- Fork repository ini
- Create feature branch (
git checkout -b feature/AmazingFeature
) - Commit changes (
git commit -m 'Add some AmazingFeature'
) - Push ke branch (
git push origin feature/AmazingFeature
) - Open Pull Request
- 🔔 Push notifications untuk status transaksi
- 📱 Progressive Web App (PWA) support
- 🌙 Dark mode implementation
- 📊 Advanced analytics dashboard
- 🤖 Chatbot integration untuk customer support
- 💎 Premium membership features
This project is licensed under the MIT License - see the LICENSE file for details.
Akbar Ryan
- GitHub: @akbarryyan
- Email: your-email@example.com
⭐ Don't forget to star this repository if you found it helpful!
Made with ❤️ by Akbar Ryan