Kasirku is a modern Point of Sale (POS) system specifically designed for restaurants and cafes. Built with cutting-edge web technologies to provide a seamless experience for both customers and administrators.
- Digital Menu: Interactive product catalog with photos and descriptions
- Smart Cart: Shopping cart with persistent storage
- Advanced Search & Filter: Product search by name and category
- Infinite Scroll: Automatic product loading on scroll
- Mobile Responsive: Optimized for all devices
- Midtrans Integration: Trusted payment gateway for Indonesia
- Multiple Payment Methods: Support for various digital payment methods
- Tax Calculation: Automatic 10% tax calculation with clear breakdown
- Real-time Status: Real-time payment status updates
- Payment Webhook: Automatic notifications from payment gateway
- Real-time Order Tracking: Customers can track order status
- Order Status Updates: Pending β Completed β Ready for pickup
- Digital Receipt: Digital receipt that customers can save
- Table Management: Table number system for dine-in orders
- Product Management: CRUD operations for products with multi-photo upload
- Category Management: Product organization by categories
- Order Management: Monitor and update order status
- Payment Tracking: Monitor payments and reconciliation
- Receipt Printing: Print thermal receipts for customers
- Thermal Printer Support: Integration with ESC/POS thermal printers
- Custom Receipt Format: Customizable receipt layout
- Auto Print: Automatic printing after order completion
Digital menu with product catalog, checkout page with tax calculation, and real-time order status tracking
Admin products management dashboard for managing inventory and orders
- Laravel 12.x - PHP Framework
- Inertia.js - Modern monolith approach
- SQLite Database - Lightweight database solution
- Midtrans SDK - Payment gateway integration
- ESC/POS PHP - Thermal printer integration
- React 18 - User interface library
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Modern UI components
- Vite - Fast build tool and dev server
- Composer - PHP dependency management
- NPM - Node.js package management
- Laravel Pint - PHP code styling
- ESLint & Prettier - JavaScript/TypeScript linting and formatting
- Pest - PHP testing framework
- PHP 8.2 or higher
- Composer
- Node.js 18+ and NPM
- SQLite (or other Laravel-supported database)
git clone https://github.com/rezadrian01/Kasirku.git
cd Kasirku# Install PHP dependencies
composer install
# Install Node.js dependencies
npm install# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate# Run migrations
php artisan migrate
# Seed database (optional)
php artisan db:seedEdit the .env file and add Midtrans configuration:
MIDTRANS_SERVER_KEY=your-server-key
MIDTRANS_CLIENT_KEY=your-client-key
MIDTRANS_IS_PRODUCTION=false
MIDTRANS_IS_SANITIZED=true
MIDTRANS_IS_3DS=true# Development
npm run dev
# Production
npm run build# Laravel development server
php artisan serve
# Vite development server (in separate terminal)
npm run devThe application will be available at http://localhost:8000
- Browse Menu: Customers access the homepage to view the menu
- Add to Cart: Select products and add them to the cart
- Checkout: Enter customer name and table number
- Payment: Pay using Midtrans payment gateway
- Order Tracking: Track order status through the provided link
- Login: Admin logs in to the dashboard (
/admin/dashboard) - Manage Products: Add, edit, or delete products
- Manage Categories: Manage product categories
- Monitor Orders: View and update order status
- Print Receipt: Print receipts for customers
- Register an account at Midtrans
- Get your Server Key and Client Key
- Configure webhook URL for production:
yourdomain.com/checkout/notification
- Connect thermal printer via USB
- Ensure printer is detected at
/dev/usb/lp0 - Adjust printer path in
PrintController.phpif needed
# Application
APP_NAME=Kasirku
APP_URL=http://localhost:8000
# Database
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/database.sqlite
# Midtrans Configuration
MIDTRANS_SERVER_KEY=your-server-key
MIDTRANS_CLIENT_KEY=your-client-key
MIDTRANS_IS_PRODUCTION=false# Run PHP tests
php artisan test
# Run with coverage
php artisan test --coverage
# Run JavaScript tests
npm run test
# Type checking
npm run typeskasirku/
βββ app/
β βββ Http/Controllers/ # Laravel controllers
β βββ Models/ # Eloquent models
β βββ Providers/ # Service providers
βββ database/
β βββ migrations/ # Database migrations
β βββ seeders/ # Database seeders
β βββ factories/ # Model factories
βββ resources/
β βββ js/ # React/TypeScript frontend
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ types/ # TypeScript type definitions
β βββ css/ # Stylesheets
βββ routes/
β βββ web.php # Web routes
β βββ auth.php # Authentication routes
βββ public/ # Public assets
We warmly welcome contributions! Please follow these steps:
- Fork this repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Create a Pull Request
- Follow PSR-12 for PHP code
- Use TypeScript for all frontend code
- Ensure all tests pass before submitting PR
- Write descriptive commit messages
If you find a bug or want to request a new feature:
- Check first in Issues
- If it doesn't exist, create a new issue with the appropriate template
- Provide detailed information and reproduction steps for bugs
This project uses the MIT License. You are free to use, modify, and distribute this project according to the license terms.
- Laravel - Amazing PHP framework
- React - The best UI library
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Beautiful UI components
- Midtrans - Indonesian payment gateway
- Inertia.js - Modern monolith approach
Reza Adrian
- GitHub: @rezadrian01
If you need help or have questions:
- Create an issue in the GitHub repository
- Email: [email protected] (if available)
β Don't forget to star this repository if it's helpful!
Made with β€οΈ for Indonesian F&B industry



