Skip to main content
Now that you have POS Kasir installed and configured, this guide will walk you through your first login, understanding user roles, and performing initial setup tasks.

Initial Login

After running the database seeder, you’ll have three default user accounts available:

Admin

Email: [email protected]
Password: passwordrahasia
Role: Administrator

Cashier

Email: [email protected]
Password: passwordrahasia
Role: Cashier

Manager

Email: [email protected]
Password: passwordrahasia
Role: Manager
1

Access the Application

Open your browser and navigate to:
http://localhost:3000
You’ll see the login page.
2

Login as Admin

For your first login, use the admin account:Click Sign In to access the dashboard.
3

Change Default Password

Important: Change the default password immediately for security!
Navigate to SettingsProfile and update your password.

Understanding User Roles

POS Kasir implements Role-Based Access Control (RBAC) with three distinct roles:

Administrator

Full System Access
  • User management (create, edit, delete users)
  • Product and inventory management
  • Category management
  • Payment method configuration
  • System settings and branding
  • Full access to reports and analytics
  • Activity logs and audit trails
  • Promotion and discount management

Manager

Management & Reporting
  • View and manage products
  • Access reports and analytics
  • View transaction history
  • Monitor cashier performance
  • View activity logs
  • Limited user management

Cashier

Point of Sale Operations
  • Process sales transactions
  • Handle cash and digital payments
  • Manage shift operations
  • View product catalog
  • Generate receipts
  • Limited access to reports (own transactions only)
User roles are enforced both on the frontend (UI restrictions) and backend (API authorization).

Initial Setup Tasks

Complete these essential setup tasks to prepare your POS system:

1. Configure System Branding

1

Upload Logo

Go to SettingsBranding and upload your business logo.This logo will appear on:
  • Login page
  • Dashboard header
  • Printed receipts
2

Set Business Information

Configure:
  • Business name
  • Address
  • Phone number
  • Tax identification number
3

Configure Printer Settings

Go to SettingsPrinter to configure:
  • Receipt paper size
  • Header/footer text
  • Logo position
  • Print options

2. Set Up Product Categories

1

Create Categories

Navigate to ProductsCategoriesCreate categories for organizing your products:
  • Beverages
  • Food
  • Snacks
  • Merchandise
2

Add Category Details

For each category, specify:
  • Category name
  • Description (optional)
  • Display order

3. Add Products

1

Navigate to Products

Go to ProductsAll ProductsAdd New Product
2

Fill Product Details

Enter product information:
  • Name: Product name
  • SKU: Stock keeping unit (unique identifier)
  • Category: Select from created categories
  • Price: Selling price
  • Cost: Purchase cost (for profit calculation)
  • Stock: Initial quantity
  • Description: Product description
  • Image: Upload product image (stored in R2)
3

Add Product Options (Optional)

For products with variants (e.g., sizes, flavors):
  • Click Add Option
  • Name: “Size”, “Flavor”, etc.
  • Values: “Small”, “Medium”, “Large”
  • Price adjustments for each option
4

Set Stock Management

Configure:
  • Minimum stock level (low stock alerts)
  • Track inventory automatically
  • Enable/disable stock management per product

4. Configure Payment Methods

1

Review Default Methods

Navigate to SettingsPayment MethodsDefault methods from seeder:
  • Cash
  • Credit/Debit Card
  • Digital Wallet (Midtrans)
2

Enable/Disable Methods

Toggle payment methods based on your needs:
  • Enable Cash for traditional payments
  • Enable Midtrans for digital payments (requires configuration)
  • Disable unused methods
3

Test Midtrans Integration

If using digital payments:
  1. Ensure MIDTRANS_SERVER_KEY is set in .env
  2. Keep MIDTRANS_IS_PROD=false for testing
  3. Create a test transaction
  4. Use Midtrans test cards to verify

5. Create Additional Users

1

Go to User Management

Navigate to SettingsUsersAdd New User
2

Fill User Information

  • Username: Unique username
  • Email: User email address
  • Password: Initial password (user should change on first login)
  • Role: Select appropriate role (Admin/Manager/Cashier)
  • Active: Enable user account
3

Notify User

Provide the user with:
  • Login URL: http://localhost:3000
  • Their email and temporary password
  • Instructions to change password on first login

First Transaction

Test your setup by processing a test transaction:
1

Login as Cashier

Use the cashier account or create a new cashier user.
2

Start a Shift

Before processing transactions:
  1. Go to ShiftStart Shift
  2. Enter starting cash amount
  3. Confirm to begin accepting transactions
Shifts track cashier activities and cash flow during work periods.
3

Open POS Interface

Click Point of Sale or New Sale to access the POS screen.
4

Add Products to Cart

  • Browse or search for products
  • Click products to add to cart
  • Adjust quantities if needed
  • Select product options if available
5

Apply Discounts (Optional)

  • Add manual discount (percentage or fixed amount)
  • Or apply promotion codes if configured
6

Process Payment

  1. Click Checkout
  2. Select payment method:
    • Cash: Enter amount received, system calculates change
    • Digital: Generates Midtrans payment link
  3. Complete payment
  4. Print or email receipt
7

End Shift

When cashier’s shift ends:
  1. Go to ShiftEnd Shift
  2. Count cash in register
  3. Enter actual cash amount
  4. System shows expected vs actual (discrepancy report)
  5. Confirm to close shift

Exploring the Dashboard

Dashboard Overview

View key metrics:
  • Today’s sales
  • Transaction count
  • Popular products
  • Cashier performance

Reports & Analytics

Access detailed reports:
  • Sales reports (daily/weekly/monthly)
  • Product performance
  • Profit analysis
  • Payment method breakdown
  • Cashier performance

Transaction History

View and manage orders:
  • Filter by date, status, cashier
  • View order details
  • Print receipts
  • Process refunds/cancellations

Activity Logs

Audit trail of system activities:
  • User actions
  • Product changes
  • Order modifications
  • System events

API Exploration

Explore the backend API using Swagger documentation:
1

Access Swagger UI

Navigate to:
http://localhost:8080/swagger/index.html
2

Authenticate

  1. Click Authorize button
  2. Use the /auth/login endpoint to get JWT token
  3. Copy the token from response
  4. Paste token in authorization field: Bearer <your-token>
3

Test Endpoints

Try various endpoints:
  • GET /products - List all products
  • POST /orders - Create new order
  • GET /reports/dashboard-summary - Get dashboard data
  • GET /activity-logs - View activity logs
The API follows RESTful conventions and returns responses in JSON format.

Multi-language Support

POS Kasir frontend supports multiple languages:
  • English (en)
  • Indonesian (id)
Users can change language from the settings or profile menu. The language preference is saved per user.

Best Practices

  • Change all default passwords immediately
  • Use strong passwords (min 8 characters, mix of letters, numbers, symbols)
  • Regularly review user access and roles
  • Monitor activity logs for suspicious activities
  • Keep JWT tokens secure (never share)
  • Set appropriate session timeout (JWT_DURATION_HOURS)
  • Always start and end shifts properly
  • Count cash at shift end to detect discrepancies
  • Regularly backup your database
  • Monitor stock levels and set reorder points
  • Review daily reports for anomalies
  • Train staff on proper POS usage
  • Keep product information up to date
  • Regular stock audits and adjustments
  • Archive old transactions periodically
  • Clean up unused products and categories
  • Maintain accurate cost prices for profit tracking
  • Monitor system resources (CPU, memory, disk)
  • Regular database maintenance and optimization
  • Optimize product images (compress before upload)
  • Review slow queries in logs
  • Scale resources as transaction volume grows

Common Tasks

Managing Stock

  • Adjust Stock: Go to product details → Stock History → Adjust
  • View History: See all stock movements with timestamps and reasons
  • Low Stock Alerts: Products below minimum threshold are highlighted

Processing Refunds

  1. Find transaction in Transaction History
  2. Click View Details
  3. Select Refund or Cancel
  4. Choose cancellation reason
  5. Confirm refund (stock is automatically adjusted)

Creating Promotions

  1. Navigate to PromotionsCreate Promotion
  2. Set promotion details:
    • Name and description
    • Discount type (percentage/fixed)
    • Start and end dates
    • Target: All products, category, or specific products
  3. Define rules (minimum purchase, quantity requirements)
  4. Activate promotion

Viewing Reports

  • Sales Report: Revenue over time periods
  • Product Performance: Best/worst sellers, quantity sold
  • Profit Analysis: Profit margins per product/category
  • Cashier Performance: Transactions and sales per cashier
  • Payment Methods: Breakdown of payment types used

Troubleshooting

  • Verify credentials (case-sensitive)
  • Check if user account is active
  • Ensure backend is running: docker-compose ps
  • Check browser console for API errors
  • Verify VITE_API_BASE in web/.env is correct
  • For Midtrans: Check MIDTRANS_SERVER_KEY is set
  • Verify Midtrans sandbox mode for testing
  • Check browser console and backend logs
  • Ensure internet connectivity for external payment gateway
  • Verify R2 credentials in .env
  • Check R2 bucket exists and is accessible
  • Verify file size (may have limits)
  • Check backend logs for S3 errors
  • Check if product has stock tracking enabled
  • Verify transaction was completed (not pending)
  • Review activity logs for stock adjustments
  • Check for database connection issues

Next Steps

API Reference

Explore detailed API documentation

Core Features

Learn about advanced features and capabilities

Deployment

Deploy POS Kasir to production

Development

System architecture and development guide

Getting Help

If you need assistance:
  • Check the API Documentation
  • Review Activity Logs for error details
  • Check backend logs: docker-compose logs backend
  • Check frontend logs in browser console (F12)

Build docs developers (and LLMs) love