Skip to content

🍽️ Modern open-source POS system for restaurants & cafes. Features digital menu, Midtrans payments, thermal printer integration & real-time order tracking. Built with Laravel & React.

License

Notifications You must be signed in to change notification settings

rezadrian01/Kasirku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍽️ Kasirku - Point of Sale (POS) System

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.

License Laravel React TypeScript

✨ Key Features

πŸ›οΈ Customer Interface

  • 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

πŸ’³ Payment System

  • 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

πŸ“± Order Management

  • 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

πŸ”§ Admin Dashboard

  • 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

πŸ–¨οΈ Printing System

  • Thermal Printer Support: Integration with ESC/POS thermal printers
  • Custom Receipt Format: Customizable receipt layout
  • Auto Print: Automatic printing after order completion

πŸ“Έ Screenshots

Customer Interface

Main Page - Digital Menu Checkout Page Order Status Tracking

Digital menu with product catalog, checkout page with tax calculation, and real-time order status tracking

Admin Dashboard

Admin Products Management

Admin products management dashboard for managing inventory and orders

πŸ—οΈ Tech Stack

Backend

  • 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

Frontend

  • 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

Development Tools

  • 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

πŸš€ Installation

Prerequisites

  • PHP 8.2 or higher
  • Composer
  • Node.js 18+ and NPM
  • SQLite (or other Laravel-supported database)

Step 1: Clone Repository

git clone https://github.com/rezadrian01/Kasirku.git
cd Kasirku

Step 2: Install Dependencies

# Install PHP dependencies
composer install

# Install Node.js dependencies
npm install

Step 3: Environment Setup

# Copy environment file
cp .env.example .env

# Generate application key
php artisan key:generate

Step 4: Database Setup

# Run migrations
php artisan migrate

# Seed database (optional)
php artisan db:seed

Step 5: Configure Midtrans

Edit 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

Step 6: Build Assets

# Development
npm run dev

# Production
npm run build

Step 7: Start Development Server

# Laravel development server
php artisan serve

# Vite development server (in separate terminal)
npm run dev

The application will be available at http://localhost:8000

πŸ“– Usage Guide

Customer Flow

  1. Browse Menu: Customers access the homepage to view the menu
  2. Add to Cart: Select products and add them to the cart
  3. Checkout: Enter customer name and table number
  4. Payment: Pay using Midtrans payment gateway
  5. Order Tracking: Track order status through the provided link

Admin Flow

  1. Login: Admin logs in to the dashboard (/admin/dashboard)
  2. Manage Products: Add, edit, or delete products
  3. Manage Categories: Manage product categories
  4. Monitor Orders: View and update order status
  5. Print Receipt: Print receipts for customers

πŸ”§ Configuration

Midtrans Setup

  1. Register an account at Midtrans
  2. Get your Server Key and Client Key
  3. Configure webhook URL for production: yourdomain.com/checkout/notification

Printer Setup (Optional)

  1. Connect thermal printer via USB
  2. Ensure printer is detected at /dev/usb/lp0
  3. Adjust printer path in PrintController.php if needed

Environment Variables

# 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

πŸ§ͺ Testing

# Run PHP tests
php artisan test

# Run with coverage
php artisan test --coverage

# Run JavaScript tests
npm run test

# Type checking
npm run types

πŸ“ Project Structure

kasirku/
β”œβ”€β”€ 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

🀝 Contributing

We warmly welcome contributions! Please follow these steps:

  1. Fork this repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Create a Pull Request

Development Guidelines

  • Follow PSR-12 for PHP code
  • Use TypeScript for all frontend code
  • Ensure all tests pass before submitting PR
  • Write descriptive commit messages

πŸ› Bug Reports & Feature Requests

If you find a bug or want to request a new feature:

  1. Check first in Issues
  2. If it doesn't exist, create a new issue with the appropriate template
  3. Provide detailed information and reproduction steps for bugs

πŸ“„ License

This project uses the MIT License. You are free to use, modify, and distribute this project according to the license terms.

πŸ™ Acknowledgments

πŸ‘¨β€πŸ’» Author

Reza Adrian

πŸ“ž Support

If you need help or have questions:


⭐ Don't forget to star this repository if it's helpful!

Made with ❀️ for Indonesian F&B industry

About

🍽️ Modern open-source POS system for restaurants & cafes. Features digital menu, Midtrans payments, thermal printer integration & real-time order tracking. Built with Laravel & React.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages